索引
索引的概念有点像SQL的主键,能够通过索引选取一个数据或者一组数据。
pandas的索引对象负责管理轴标签和其他元数据。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。【index函数可以显示Series的索引】
Series的索引可以通过赋值的方式就地修改;【但是,index对象是不可变的】
index的功能类似一个固定大小的集合,pandas的Index可以包含重复的标签。
【重新索引】:reindex
——其作用是创建一个新对象,它的数据符合新的索引。
对于时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method
可以达到此目的,例如使用ffill可以实现前向值填充。
obj3.reindex(range(6),method='ffill')
reindex
:可以修改行索引和列。只传递一个序列,会重新索引结果的行。列可以用columns关键字重新索引。
2.5 pandas选择数据
2.5.1 简单的筛选
注意:当使用标签字符串进行选取时,会包括首尾两个标签。这点与使用数字序列选取时不同,如下图所示:
2.5.2 根据标签loc
用于选取指定行。
2.5.3 根据序列iloc
采用位置进行选择,在不同情况下所需要的数据例如选某一个,连续选或跨行选等操作。
2.5.4 混合选择ix
我们可以采用混合选择 ix
, 其中选择’A’和’C’的两列,并选择前三行的数据。
print(df.ix[:3,['A','C']])
"""
A C
2013-01-01 0 2
2013-01-02 4 6
2013-01-03 8 10
"""
2.5.5 通过判断筛选
采用判断指令进行选择,可以约束某项条件然后选择出当前所有数据。
print(df[df.A>8])
"""
A B C D
2013-01-04 12 13 14 15
2013-01-05 16 17 18 19
2013-01-06 20 21 22 23
"""
2.5.6 丢弃指定轴上的项
丢弃某条轴上的一个或多个项,只要有一个索引数组或列表即可。
drop
方法返回的是一个在指定轴上删除了指定值的新对象。
注意:对于DataFrame,可以删除任意轴上的索引值。
1. 用标签序列调用drop会从行标签(axis0)删除值;
2. 传递axis=1或axis=‘columns’可以删除列的值。