从 Pandas 数据框中删除列中有缺失值或 NaN 的行,可以使用 Pandas 中的 dropna() 方法来实现。该方法可用于删除包含缺失值的任何轴(行、列、元素)。
下面的示例演示如何从 Pandas 数据框中删除列中包含 NaN 值的所有行。
- 导入 Pandas 数据框架
import pandas as pd
- 创建带有 NaN 值的 Pandas 数据框
df = pd.DataFrame({ 'A': [1, 2, 3, 4, 5], 'B': ['a', None, 'c', 'd', None], 'C': [1.0, 2.0, None, 4.0, 5.0] })
- 显示 Pandas 数据框
print(df)
输出如下:
A B C
0 1 a 1.0
1 2 None 2.0
2 3 c NaN
3 4 d 4.0
4 5 None 5.0
- 使用 dropna() 方法删除包含 NaN 值的行
df.dropna(subset=['B'], inplace=True)
-
subset 参数用于指定要检查缺失值的列。
-
inplace 参数为 True 表示原始数据框被修改,为 False 表示返回新的数据框。
-
再次显示 Pandas 数据框,检查删除后的结果
print(df)
输出如下:
A B C
0 1 a 1.0
2 3 c NaN
3 4 d 4.0
可以看到,在第一列(B列)中包含 NaN 值的行都被删除了。
此外,还有很多其他选项可以在 dropna() 方法中使用,例如:
-
how 参数用于指定删除行的条件是所有的值都为 NaN 值(’all’),还是至少有一个值为 NaN 值(’any’)。
-
thresh 参数用于指定非 NaN 值的最小数量。例如,thresh=3 表示每行必须至少有3个非 NaN 值才能保留。
-
axis 参数被用于指定要在哪个轴上执行操作。axis=0 表示对行进行操作,axis=1 表示对列进行操作。
更多方法和参数,请参考 Pandas 官方文档。