Pandas:如何在使用 dropna() 后重置索引


在使用dropna()函数删除缺少值的行后,您可以使用以下基本语法来重置 pandas DataFrame 的索引:

 df = df. dropna (). reset_index (drop= True )

以下示例展示了如何在实践中使用此语法。

示例:使用 dropna() 后重置 Pandas 中的索引

假设我们有以下 pandas DataFrame,其中包含有关各种篮球运动员的信息:

 import pandas as pd
import numpy as np

#create dataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, np.nan, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, np.nan, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, np.nan, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
1 B NaN 7.0 8.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 NaN 5.0
6G 20.0 9.0 NaN
7 H 28.0 4.0 12.0

现在假设我们使用dropna()函数从 DataFrame 中删除列中缺少值的所有行:

 #drop rows with nan values in any column
df = df. dropna ()

#view updated DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
7 H 28.0 4.0 12.0

请注意,索引仍然包含每行的原始索引值。

要在使用dropna()函数后重置索引,我们可以使用以下语法:

 #drop rows with nan values in any column
df = df. dropna (). reset_index (drop= True )

#view updated DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
1 C 19.0 7.0 10.0
2 D 14.0 9.0 6.0
3 E 14.0 12.0 6.0
4 H 28.0 4.0 12.0

请注意,每个有缺失值的行都已被删除,并且索引值已被重置。

索引值现在的范围是从 0 到 4。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何打印没有索引的 Pandas DataFrame
如何在 Pandas 中按索引值过滤
如何在 Pandas 中使用第一列作为索引

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注