📜  重置索引 pandas - Python (1)

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

重置索引 pandas - Python

在 Pandas 中,我们经常需要对数据集进行分析和操作。其中修改 DataFrame 的索引是一个常见的需求。有时候我们会发现索引的顺序不合理或者出现缺失值,这时候可以使用 Pandas 中的 reset_index() 方法进行重置。

1. 重置索引并生成新的列

reset_index() 方法默认将当前索引作为新的一列添加到 DataFrame 中,并新建一个从 0 开始的整数索引。示例代码如下:

import pandas as pd

# 创建 DataFrame
data = {'name': ['John', 'Mike', 'Sarah'], 'age': [25, 35, 30], 'city': ['New York', 'Paris', 'London']}
df = pd.DataFrame(data)

# 输出原始 DataFrame
print("原始 DataFrame:")
print(df)

# 重置索引并生成新的列
df_reset = df.reset_index()
print("重置索引后的 DataFrame:")
print(df_reset)

输出结果:

原始 DataFrame:
    name  age      city
0   John   25  New York
1   Mike   35     Paris
2  Sarah   30    London

重置索引后的 DataFrame:
   index   name  age      city
0      0   John   25  New York
1      1   Mike   35     Paris
2      2  Sarah   30    London

可以看到,reset_index() 方法将原 DataFrame 的索引作为一列新数据添加到新的 DataFrame 中,并重新生成了从 0 开始的整数索引。

2. 不生成新的列

有时候我们不需要生成一个新的列,而是直接将原来的索引进行重置。可以将方法的 drop 参数设置为 True,示例代码如下:

import pandas as pd

# 创建 DataFrame
data = {'name': ['John', 'Mike', 'Sarah'], 'age': [25, 35, 30], 'city': ['New York', 'Paris', 'London']}
df = pd.DataFrame(data)

# 输出原始 DataFrame
print("原始 DataFrame:")
print(df)

# 重置索引但不生成新的列
df_reset = df.reset_index(drop=True)
print("重置索引后的 DataFrame:")
print(df_reset)

输出结果:

原始 DataFrame:
    name  age      city
0   John   25  New York
1   Mike   35     Paris
2  Sarah   30    London

重置索引后的 DataFrame:
    name  age      city
0   John   25  New York
1   Mike   35     Paris
2  Sarah   30    London

可以看到,drop 参数设置为 True 后,reset_index() 方法不会生成一列新的索引。这在需要重置数据集索引但不需要新建一列的情况下非常有用。

在以上两种情况下,reset_index() 方法均可实现对数据集的索引进行重置的功能。根据具体需求选择不同的重置方式即可。