重置索引是指将当前索引列重新整理为从零开始的连续编号索引。在 Pandas 中,可以使用 reset_index()
方法来实现。
首先,我们需要创建一个示例 DataFrame,用于说明重置索引的过程:
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 2, 4, 3, 4, 4, 5],
'D': [10, 20, 30, 40, 50, 60, 70, 80]})
这是一个包含 8 行和 4 列的 DataFrame。要重置索引列为从零开始编号的索引列,可以如下操作:
df.reset_index(inplace=True, drop=True)
其中,inplace=True
意味着修改当前的 DataFrame;drop=True
意味着将当前的索引列舍弃并添加新的从零开始编号的索引列。
操作后的 DataFrame 如下:
index A B C D
0 0 foo one 1 10
1 1 bar one 2 20
2 2 foo two 2 30
3 3 bar three 4 40
4 4 foo two 3 50
5 5 bar two 4 60
6 6 foo one 4 70
7 7 foo three 5 80
我们可以看到,index
列已经被重置为从零开始的连续编号。
除了使用默认参数 inplace=True, drop=True
之外,reset_index
方法还支持其他多种参数组合,例如:
df.reset_index(drop=True)
:删除当前索引列,不添加新的索引列。df.reset_index(level=0)
:将第一层级索引列重置为新的从零开始的连续编号索引列。如果 DataFrame 没有多级索引列,则与默认方法一样。df.reset_index(level=0, col_level=1)
:在多级列索引中,将第二层级列索引列重置为新的从零开始的连续编号列索引列。如果 DataFrame 不是多级列索引,则与默认方法一样。