📅  最后修改于: 2023-12-03 15:04:07.313000             🧑  作者: Mango
在 Pandas 中,重新索引是指为数据帧(DataFrame)或系列(Series)对象创建一个新的指定索引的过程。重新索引可用于修改现有对象的索引或在新对象中创建新索引。
df.reindex(index=None, columns=None, fill_value=None, method=None, limit=None, level=None, copy=True)
s.reindex(index=None, **kwargs)
参数:
index:新索引,由索引数组或其他序列指定。
columns:仅适用于数据框,可以将原始数据中的列名称修改为指定的列名称。
fill_value:用于填充缺失索引位置的值,如果不传入,则默认为 NaN。
method:指定用于填充插值的方法。默认值为 None,表示用 fill_value 填充。可以使用 'ffill' 或 'pad' 来插入前值,'bfill' 或 'backfill' 来插入后值。
limit:向前或向后填充时的最大连续缺失值数。
level:在多层索引上匹配简单索引的级别。
copy:默认为 True,表示复制源数据并返回新建索引的数据框或系列。如果设置为 False,则不进行复制。
import pandas as pd
# 创建数据框
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c'])
# 重新索引数据框
df = df.reindex(index=['a', 'b', 'd'], columns=['A', 'B', 'D'])
print(df)
输出:
A B D
a 1.0 4.0 NaN
b 2.0 5.0 NaN
d NaN NaN NaN
import pandas as pd
# 创建系列
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
# 重新索引系列
s = s.reindex(index=['a', 'b', 'd'], fill_value=0)
print(s)
输出:
a 1
b 2
d 0
dtype: int64
import pandas as pd
# 创建数据框
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c'])
# 修改索引名称
df.index = ['A', 'B', 'C']
print(df)
输出:
A B C
A 1 4 7
B 2 5 8
C 3 6 9
通过 Pandas 中的 reindex() 函数,我们可以重新索引数据框和系列对象,并可以指定新的行和列的索引。此外,我们还可以使用其他参数来覆盖缺失值、插值等操作。