5.2 基本功能
本节会出现Series或DataFrame中数据交互的基础机制。
5.2.1 重建索引
reindex
是pandas对象的重要方法,该方法用于新建一个符合新索引的新对象。看一下下面的例子。
In [27]: obj=pd.Series([4.5,7.2,-5.3,3.6],index=['d','b','a','c'])
In [28]: obj
Out[28]:
d 4.5
b 7.2
a -5.3
c 3.6
dtype: float64
使用reindex
自定义index顺序,没有的话会显示NaN。
In [17]: obj2=obj.reindex(['a','b','c','d','e'])
In [18]: obj2
Out[18]:
a -5.3
b 7.2
c 3.6
d 4.5
e NaN
dtype: float64
在遇到时间序列等有顺序的数据的时候,可以使用ffill
来自动按顺序填充index。
In [19]: obj3=pd.Series(['blue','purple','yellow'],index=[0,2,4])
In [20]: obj3
Out[20]:
0 blue
2 purple
4 yellow
dtype: object
In [21]: obj3.reindex(range(6),method='ffill')
Out[21]:
0 blue
1 blue
2 purple
3 purple
4 yellow
5 yellow
dtype: object
DataFrame的话可以用reindex
来改变index
In [27]: np.arange(9).reshape(3,3)
Out[27]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
In [28]: frame=pd.DataFrame(np.arange(9).reshape(3,3)),
...: index=['a','c','d'],
...: columns=['Ohio','Texas','California'])
In [29]: frame=pd.DataFrame(np.arange(9).reshape((3,3)),
...: index=['a','c','d'],
...: columns=['Ohio','Texas','California'])
In [30]: frame2=frame.reindex(['a','b','c','d'])
In [31]: frame2
Out[31]:
Ohio Texas California
a 0.0 1.0 2.0
b NaN NaN NaN
c 3.0 4.0 5.0
d 6.0 7.0 8.0
也可以对指定的列名进行索引
In [32]: states=['Texas','Utah','California']
In [33]: frame.reindex(columns=states)
Out[33]:
Texas Utah California
a 1 NaN 2
c 4 NaN 5
d 7 NaN 8
网友评论