约定: import pandas as pdimport numpy as np ReIndex重新索引

reindex()是pandas对象的一个重要方法,其作用是创建一个新索引的新对象。

一、对Series对象重新索引 se1=pd.Series([1,7,3,9],index=[‘d’,’c’,’a’,’f’])se1

代码结果:

d 1c 7a 3f 9dtype: int64 调用reindex将会重新排序,缺失值则用NaN填补。 se2=se1.reindex([‘a’,’b’,’c’,’d’,’e’,’f’])se2

代码结果:

a 3.0b NaNc 7.0d 1.0e NaNf 9.0dtype: float64 传入method=” “重新索引时选择插值处理方式:

method=’ffill’或’pad 前向填充

method=’bfill’或’backfill 后向填充

se3=pd.Series([‘blue’,’red’,’black’],index=[0,2,4])se4=se3.reindex(range(6),method=’ffill’)se4

代码结果:

0 blue1 blue2 red3 red4 black5 blackdtype: object 二、对DataFrame对象重新索引

对于DataFrame对象,reindex能修改行索引和列索引。

df1=pd.DataFrame(np.arange(9).reshape(3,3),index=[‘a’,’c’,’d’],columns=[‘one’,’two’,’four’])df1 代码结果: onetwofoura012c345d678 默认对行索引重新排序

只传入一个序列不能重新排序列索引

df1.reindex([‘a’,’b’,’c’,’d’]) 代码结果: onetwofoura0.01.02.0bNaNNaNNaNc3.04.05.0d6.07.08.0 df1.reindex(index=[‘a’,’b’,’c’,’d’],columns=[‘one’,’two’,’three’,’four’]) 代码结果: onetwothreefoura0.01.0NaN2.0bNaNNaNNaNNaNc3.04.0NaN5.0d6.07.0NaN8.0 传入fill_value=n用n代替缺失值: df1.reindex(index=[‘a’,’b’,’c’,’d’],columns=[‘one’,’two’,’three’,’four’],fill_value=100) 代码结果: onetwothreefoura011002b100100100100c341005d671008

谢谢大家的浏览,
希望我的努力能帮助到您,
共勉!