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 中使用第一列作为索引