Pandas:如何将 dropna() 与特定列一起使用


您可以使用带有子集参数的dropna()函数从 pandas DataFrame 中删除特定列中包含缺失值的行。

以下是在实践中使用此功能的最常见方法:

方法一:删除特定列中缺失值的行

 df. dropna (subset = [' column1 '], inplace= True )

方法2:删除几个特定列之一中缺失值的行

 df. dropna (subset = [' column1 ', ' column2 ', ' column3 '], inplace= True )

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd
import numpy as np

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

#view DataFrame
print (df)

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

示例1:删除特定列中缺失值的行

我们可以使用以下语法来删除“assistions”列中缺少值的行:

 #drop rows with missing values in 'assists' column
df. dropna (subset = [' assists '], inplace= True )

#view updated DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H 28.0 4.0 NaN

请注意,“Assists”列中缺失值的两行均已从 DataFrame 中删除。

另请注意,即使 DataFrame 的最后一行有缺失值,也会保留它,因为缺失值不在“helps”列中。

示例 2:删除几个特定列之一中存在缺失值的行

我们可以使用以下语法来删除“points”“bounces”列中缺少值的行:

 #drop rows with missing values in 'points' or 'rebounds' column
df. dropna (subset = [' points ', ' rebounds '], inplace= True )

#view updated DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0

请注意,“points”“bounces”列中缺少值的两行已从 DataFrame 中删除。

注意:您可以在此处找到 pandas dropna()函数的完整文档。

其他资源

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

Pandas:如何在使用 dropna() 后重置索引
Pandas:如何删除具有 NaN 值的列
Pandas:如何根据多个条件删除行

添加评论

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