1. 定义
reindex()
是pandas对象的一个重要方法,其作用是创建一个新索引的新对象。
2. 对Series对象重新索引
import numpy as np
import pandas as pd
series_1=pd.Series([1,7,3,9],index=['d','c','b','a'])
series_1
运行结果:
调用reindex将会重新排序:
series_2=series_1.reindex(['a','b','c','d'])
series_2
重新索引时选择插值处理方式:
我们看一个例子:
series_3=pd.Series(['北京','上海','杭州'],index=[0,2,4])
series_3
运行结果如下:
传入method=
重新索引时选择插值处理方式:
method=’ffill’或’pad
前向填充method=’bfill’或’backfill
后向填充
我们先看一下前向填充:
series_4=series_3.reindex(range(6),method='ffill')
series_4
我们看一下后向填充:
series_5=series_3.reindex(range(6),method='bfill')
series_5
3. 对DataFrame对象重新索引
对于DataFrame对象,reindex能修改行索引和列索引。
df1=pd.DataFrame(np.arange(9).reshape(3,3),index=['a','c','d'],columns=['one','two','four'])
df1
1)默认对行索引重新排序
只传入一个序列不能重新排序列索引:
df1.reindex(['a','b','c','d'])
df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'])
2)传入fill_value=n用n代替缺失值:
df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'],fill_value=50)