重新索引
pandas对象的一个重要方法是reindex,其作用是创建一个适应新索引的新对象。
对于DataFrame,reindex可以修改(行索引)、列,或者两个都修改。如果仅传入一个序列,则会重新索引行:
frame=DataFrame(np.arange(9).reshape((3,3)),index=['a','b','c','d'],columns=['Ohio','Texas','California'])
pandas对象的一个重要方法是reindex,其作用是创建一个适应新索引的新对象。
调用该Series的reindex将会根据新索引进行重排。如果某个索引当前值不存在,就引入缺失值
对于时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method选项即可达到此目的,例如,使用ffill可以实现前向值填充:
reindex的(插值)method选项 | |
参数 | 说明 |
fill或pad | 前后填充(或搬运)值 |
bfill或backfill | 后向填充(或搬运)值 |
frame=DataFrame(np.arange(9).reshape((3,3)),index=['a','b','c','d'],columns=['Ohio','Texas','California'])
使用columns关键字即可重新索引列:
也可以同时对行和列进行重新索引,而插值则只能按行应用,利用ix的标签索引功能,重新索引任务可以变得更简洁.
reindex函数的参数 | |
参数 | 说明 |
index | 用作索引的新序列。既可以是Index实例,也可以是其他序列型的Python数据结构。Index会被完全使用,就向没有任何复制一样 |
method | 插值(填充)方式 |
fill_value | 在重新索引的过程中,需要引入缺失值时使用的替代值 |
limit | 前向或后向填充是最大填充量 |
level | 在MultiIndex的指定级别上匹配简单索引,否则选取其子集 |
copy | 默认为True,无论如何都复制,如果为False,则新旧相等就不复制 |