本节我们主要介绍pandas对象series和dataframe当中的一些重要的方法
reindex方法
reindex方法会根据index对series和dataframe进行重排序,对于找不到的index会用NAN值进行填充。
In [151]: obj
Out[151]:
d4.5b7.2a-5.3c3.6dtype: float64
In [152]: f
Out[152]:
state year pop
0 Ohio2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.9
5 Nevada 2003 3.2In [153]: f.reindex([0,2,1,3,4,5])
Out[153]:
state year pop
0 Ohio2000 1.5
2 Ohio 2002 3.6
1 Ohio 2001 1.7
3 Nevada 2001 2.4
4 Nevada 2002 2.9
5 Nevada 2003 3.2In [154]: f.reindex([0,2,1,3,4,5,6])
Out[154]:
state year pop
0 Ohio2000.0 1.5
2 Ohio 2002.0 3.6
1 Ohio 2001.0 1.7
3 Nevada 2001.0 2.4
4 Nevada 2002.0 2.9
5 Nevada 2003.0 3.2
6 NaN NaN NaN
对于dataframe而言reindex函数除了能够根据index重新排列行以外,也能够对列进行重新排序。
In [156]: f.reindex(columns=['year','state','pop'])
Out[156]:
year state pop
02000 Ohio 1.5
1 2001 Ohio 1.7
2 2002 Ohio 3.6
3 2001 Nevada 2.4
4 2002 Nevada 2.9
5 2003 Nevada 3.2In [157]: f.reindex(columns=['year','state','pop','not exist'])
Out[157]:
year state popnotexist
02000 Ohio 1.5NaN1 2001 Ohio 1.7NaN2 2002 Ohio 3.6NaN3 2001 Nevada 2.4NaN4 2002 Nevada 2.9NaN5 2003 Nevada 3.2 NaN
在重新排列时,当你想要完成一些插值操作时可以使用类似method选项完成,例如ffill实现向前填充,即reindex的行或列不存在时,本身是需要按照NAN值填充,method=ffill方法可以将其按照前一行或列进行填充。