python - 如何删除第一列和第三列中都包含 NaN 的行?

标签 python pandas dataframe

当dataframe是这样的时候,

      a    b     c     d
0   1.0  NaN   3.0   NaN
1   NaN  6.0   NaN   8.0
2   9.0  NaN   NaN   NaN
3  13.0  NaN  15.0  16.0

我想删除 b 和 d 列中包含 NaN 的行。所以我希望结果是这样的。

      a    b     c     d
1   NaN  6.0   NaN   8.0
3  13.0  NaN  15.0  16.0

在这种情况下,我不能使用 df.dropna(thresh=2) 因为我不想删除第 1 行,
如果我使用 df.dropna(subset=['b', 'd']) 那么第 3 行也将被删除。
我现在该怎么办?

最佳答案

dropna 有一个额外的参数,how:

how{‘any’, ‘all’}, default ‘any’
    Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.
        ‘any’ : If any NA values are present, drop that row or column.
        ‘all’ : If all values are NA, drop that row or column.

如果您将它设置为all,它只会丢弃填充了NaN 的行。在你的情况下 df.dropna(subset=['b', 'd'], how="all") 会起作用。

关于python - 如何删除第一列和第三列中都包含 NaN 的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68467015/

相关文章:

reshape 调查数据以获取 R 中的响应计数

python终止/杀死子进程组

python - 当我给它图像时,我的 keras 模型会给出随机预测

python,将Json写入文件

python - Pandas 数据帧向前填充衰减

python - 将图像注释添加到条形图中

python - Pandas:识别范围内值的重叠成员资格

c# - python 和 .net 上使用单个公钥加密的不同答案

python - 用 Pandas 中的 NaN 比较两列并得到差异

python - 自动化比较数据框的多列并将数据存储到新列中的过程