Pandas DataFrame DataFrame.reindex() 函数
Minahil Noor
2023年1月30日
-
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
用最后一个可用值填补了前向缺失值。