Pandas DataFrame DataFrame.reindex() 函数
Minahil Noor
2023年1月30日
2020年6月17日
-
pandas.DataFrame.reindex()
语法 -
示例代码:
DataFrame.reindex()
-
示例代码:
DataFrame.reindex()
来重新索引列 -
示例代码:
DataFrame.reindex()
用fill_value
填充缺失值的方法 -
示例代码:
DataFrame.reindex()
使用method
参数来填充缺失的值
Python Pandas DataFrame.reindex()
函数改变一个 DataFrame
的索引。它改变了指定轴上的索引。新的索引不包含值。它提供了可选的参数来填充这些值。
pandas.DataFrame.reindex()
语法
DataFrame.dropna(labels,
index,
columns,
axis,
method,
copy,
level,
fill_value,
limit,
tolerance)
参数
labels |
它是一个类似于数组的结构,包含新索引的名称 |
index, columns |
它是一个类似于数组的结构,包含新索引的名称。应使用关键字 index 或 columns 来指定 |
axis |
它是一个整数或字符串。它告诉目标轴的行或列。它可以是 0 或 index ,1 或 columns |
method |
这个参数指定了在重新索引的 DataFrame 中填充缺失值的方法。它有四种可能的方法: None 、backfill /bfill 、pad /ffill 、pad /ffill 。None , backfill /bfill , pad /ffill , nearest . 它只适用于我们的 DataFrame 或 Series 有一个索引递增或递减的序列 |
copy |
布尔值。默认情况下,它是 True 。它返回一个新对象 |
level |
它是一个整数或名称。它匹配传递的多索引级别的索引值 |
fill_value |
它有一个标量值。它是填补缺失值的值 |
limit |
它是一个整数。它表示连续元素的极限,同时填充缺失值 |
tolerance |
在不完全匹配的情况下,它可以显示原始标签和新标签之间的差异 |
返回值
它返回一个带有改变过的索引的 DataFrame
。
示例代码:DataFrame.reindex()
默认情况下,轴是 0
即行,所以行将被重新索引。
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
print(dataframe)
例子 DataFrame 如下。
Attendance Name Obtained Marks
0 60 Olivia 56
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
Python 中的索引从 0 开始,我们将重新索引我们的 DataFrame
,新的索引将从 1 开始。
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
dataframe1 = dataframe.reindex([1,2,3,4,5])
print(dataframe1)
输出:
Attendance Name Obtained Marks
1 100.0 John 75.0
2 80.0 Laura 82.0
3 75.0 Ben 64.0
4 95.0 Kevin 67.0
5 NaN NaN NaN
这里,5
是一个新的索引。所以,新索引的值是 NaN
。
示例代码:DataFrame.reindex()
来重新索引列
有两种方法可以重新索引列。一种是用列关键字指定标签,另一种是使用轴参数。比较好的一种是用列关键字指定标签。
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
dataframe1 = dataframe.reindex(columns=['Presents','Name', 'Marks'])
print(dataframe1)
输出:
Presents Name Marks
0 NaN Olivia NaN
1 NaN John NaN
2 NaN Laura NaN
3 NaN Ben NaN
4 NaN Kevin NaN
旧的索引用旧的值分配。新索引的值为 NaN
。
我们也可以用 axis
参数重新索引列。
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
dataframe1 = dataframe.reindex(['Presents','Name', 'Marks'],
axis='columns')
print(dataframe1)
示例代码:DataFrame.reindex()
用 fill_value
填充缺失值的方法
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
dataframe1 = dataframe.reindex([1,2,3,4,5], fill_value=0)
print(dataframe1)
输出:
Attendance Name Obtained Marks
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
5 0 0 0
缺失的值现在用 0
填充。
示例代码:DataFrame.reindex()
使用 method
参数来填充缺失的值
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
dataframe1 = dataframe.reindex([1,2,3,4,5], method='ffill')
print(dataframe1)
输出:
Attendance Name Obtained Marks
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
5 95 Kevin 67
方法 ffill
用最后一个可用值填补了前向缺失值。