从Pandas数据框架中删除列中有缺失值或NaN的行

  • Post category:Python

从 Pandas 数据框中删除列中有缺失值或 NaN 的行,可以使用 Pandas 中的 dropna() 方法来实现。该方法可用于删除包含缺失值的任何轴(行、列、元素)。

下面的示例演示如何从 Pandas 数据框中删除列中包含 NaN 值的所有行。

  1. 导入 Pandas 数据框架
import pandas as pd
  1. 创建带有 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] })
  1. 显示 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
  1. 使用 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 官方文档。