获取索引对象
obj = pd.Series(range(3), index=['a', 'b', 'c'])
index = obj.index
索引对象
Index对象是不可变的,因此用户不能对其进行修改
index[1] ='d'
索引对象不可变
不可变可以使Index对象在多个数据结构之间安全共享
labels = pd.Index(np.arange(3))
obj2 = pd.Series([1.5, -2.5, 0], index=labels)
index对象共享
基本功能
pandas对象的一个重要方法是reindex,其作用是创建一个新对象,它的数据符合新的索引。
obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c'])
obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])
reindex创建新对象
时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method选项即可达到此目的,例如,使用ffill可以实现前向值填充。
obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
obj3.reindex(range(6), method='ffill')
前向值填充
reindex可以修改(行)索引和列。只传递一个序列时,会重新索引结果的行。
frame = pd.DataFrame(np.arange(9).reshape((3, 3)),
index=['a', 'c', 'd'],
columns=['Ohio', 'Texas', 'California'])
frame2 = frame.reindex(['a', 'b', 'c', 'd'])
重新索引
列可以用columns关键字重新索引
states = ['Texas', 'Utah', 'California']
frame.reindex(columns=states)
列的重新索引
丢弃指定轴上的项
drop方法返回的是一个在指定轴上删除了指定值的新对象。
obj = pd.Series(np.arange(5.), index=['a', 'b', 'c', 'd', 'e'])
new_obj = obj.drop('c')
obj.drop('a','c')
drop
对于DataFrame,可以删除任意轴上的索引值
data = pd.DataFrame(np.arange(16).reshape((4, 4)),
index=['Ohio', 'Colorado', 'Utah', 'New York'],
columns=['one', 'two', 'three', 'four'])
data.drop(['Utah','New York'])
删除行
通过传递axis=1或axis='columns'可以删除列的值
data.drop('two', axis=1)
data.drop(['two', 'four'], axis='columns')
利用axis删除列
网友评论