http://liao.cpython.org/pandas06/
v1 = [10,20,30,25]
v2 = [1,3,6,7]
idx = 'k i s t'.split()
s1 = pd.Series(v1,index = idx)
s2 = pd.Series(v2,index = idx)
series 的add & append
add: add函数可以将other另一个Series对象加到某Series对象里,两个Series具有相同的index或者label的对应值相加。
s1.add(s2)
Out[132]:
k 11
i 23
s 36
t 32
dtype: int64
s3 = s1 + s2
Out[135]:
k 11
i 23
s 36
t 32
dtype: int64
append函数和列表的append函数类似,将另外一个series连接在某series后边。
series + series
s1.append(s2)
Out[138]:
k 10
i 20
s 30
t 25
k 1
i 3
s 6
t 7
dtype: int64
s1.append({‘z’:89}) 报错:
TypeError: cannot concatenate object of type “<class ‘dict’>”; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid
s1.append(pd.Series({'z':100}))
Out[139]:
k 10
i 20
s 30
t 25
z 100
dtype: int64
count: count函数可以统计series里非NaN数据个数
s1.count()
Out[141]: 4
sort_index、sort_values函数
sort_index函数会对series进行index的排序,默认inplace参数为假即返回新的series不影响原series。
s3 = s1.append(s2)
s3.sort_index()
Out[144]:
i 20
i 3
k 10
k 1
s 30
s 6
t 25
t 7
dtype: int64
s3.sort_values()
Out[145]:
k 1
i 3
s 6
t 7
k 10
i 20
t 25
s 30
dtype: int64
reset_index函数: 可以启用reset_index函数的drop形参去掉之前的index,启用inplace直接影响原series对象。
s2
Out[160]:
k 1
i 3
s 6
t 7
dtype: int64
s2.reset_index(drop = True)
Out[161]:
0 1
1 3
2 6
3 7
dtype: int64
reindex函数: reindex函数可以将series的index换成其他的index。新的series保留原series存在的index的values值,如果新的index没在原series的index里填充NaN值,或者使用fill_value参数指定填充值。
idx_new = 'k i s t l e r'.split()
s2.reindex(idx_new)
Out[163]:
k 1.0
i 3.0
s 6.0
t 7.0
l NaN
e NaN
r NaN
dtype: float64
s2.reindex(idx_new,fill_value = 0)
Out[164]:
k 1
i 3
s 6
t 7
l 0
e 0
r 0
dtype: int64