约定第一行代码

import numpy as np
import pandas as pd

ReIndex重新索引

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

一、对Series对象重新索引

se1=pd.Series([1,7,3,9],index=['d','c','a','f'])
se1

#代码结果
d    1
c    7
a    3
f    9
dtype: int64
  • 调用reindex将会重新排序,缺失值则用NaN填补
se2=se1.reindex(['a','b','c','d','e','f'])
se2

#代码结果
a    3.0
b    NaN
c    7.0
d    1.0
e    NaN
f    9.0
dtype: float64
  • 传入method=” “重新索引时选择插值处理方式


前向填充

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

#代码结果
0     blue
1     blue
2      red
3      red
4    black
5    black
dtype: object

后向填充

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

#代码结果
0     blue
1     red
2     red
3    black
4    black
5    NaN
dtype: object

二、对DataFrame对象重新索引

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

df1=pd.DataFrame(np.arange(9).reshape(3,3),index=['a','c','d'],columns=['one','two','four'])
df1

代码结果

onetwofour
a012
c345
d678
  • 默认对行索引重新排序
df1.reindex(['a','b','c','d'])

代码结果

onetwofour
a0.01.02.0
bNaNNaNNaN
c3.04.05.0
d6.07.08.0
  • 传入参数 重新排序行和列
df1.reindex(index=['a','b','c','d'],
            columns=['one','two','three','four'])

代码结果

onetwothreefour
a0.01.0NaN2.0
bNaNNaNNaNNaN
c3.04.0NaN5.0
d6.07.0NaN8.0
  • 传入fill_value=n用n代替缺失值
df1.reindex(index=['a','b','c','d'],
            columns=['one','two','three','four'],
            fill_value=100)

代码结果

onetwothreefour
a0.01.01002.0
b100100100100
c3.04.01005.0
d6.07.01008.0

世界因代码而改变 Peace Out
世界因代码而改变 Peace Out
最后修改:2020 年 10 月 07 日 03 : 21 PM
如果觉得我的文章对你有用,请随意赞赏