📜  Python Pandas-重新索引(1)

📅  最后修改于: 2023-12-03 15:04:07.313000             🧑  作者: Mango

Python Pandas-重新索引

在 Pandas 中,重新索引是指为数据帧(DataFrame)或系列(Series)对象创建一个新的指定索引的过程。重新索引可用于修改现有对象的索引或在新对象中创建新索引。

语法
数据帧(DataFrame):
df.reindex(index=None, columns=None, fill_value=None, method=None, limit=None, level=None, copy=True)
系列(Series):
s.reindex(index=None, **kwargs)

参数:

  • index:新索引,由索引数组或其他序列指定。

  • columns:仅适用于数据框,可以将原始数据中的列名称修改为指定的列名称。

  • fill_value:用于填充缺失索引位置的值,如果不传入,则默认为 NaN。

  • method:指定用于填充插值的方法。默认值为 None,表示用 fill_value 填充。可以使用 'ffill' 或 'pad' 来插入前值,'bfill' 或 'backfill' 来插入后值。

  • limit:向前或向后填充时的最大连续缺失值数。

  • level:在多层索引上匹配简单索引的级别。

  • copy:默认为 True,表示复制源数据并返回新建索引的数据框或系列。如果设置为 False,则不进行复制。

示例
重新索引数据框(DataFrame)
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
重新索引系列(Series)
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() 函数,我们可以重新索引数据框和系列对象,并可以指定新的行和列的索引。此外,我们还可以使用其他参数来覆盖缺失值、插值等操作。