首页 > 解决方案 > 如何在不知道哪些行的情况下在多列中选择具有 NaN 的行?

问题描述

假设我有一个数据框:

    0   1   2   3   4   5
0   1A  2   3   4   nan 6
1   1   2   3   nan 5   nan
2   1A  2   nan nan nan nan
3   1   2   nan nan nan nan
4   1   2   3   4   5   6

我想删除具有 df[0] 条件且第 2 列为 nan 的行。我无法获得第二部分。

我尝试使用以下方法选择要删除的行:

df.loc[:,2:].isnull()

但这会选择最后一列中包含任何空值的行,我想要 2: 中的所有列都为空的行

我不想命名列,因为数据框并不总是具有相同数量的列。我现在想到的唯一解决方案是确定数据框中的列数,然后使用

df.loc[x,2].isnull() & df.loc[x,3].isnull() ...

这看起来很笨重。理想情况下,我想要一种方法来检查第 2 列之后的所有列中是否有空值 (df.loc[x,2:])

标签: pythonpandas

解决方案


Quang Hong在评论中给了我一个答案,这正是我一直在寻找的:

df.loc[:,2:].isnull().all(1)

推荐阅读