首页 > 解决方案 > 当所有特定 4 列的值在 pandas 中均为 NaN 时删除行

问题描述

我有一个 df 如下所示

东风:

ID       Type         Desc         D_N    D_A    C_N     C_A
1        Edu          Education    3      100    NaN     NaN
1        Bank         In_Pay       NaN    NaN    8       900
1        Eat          Food         4      200    NaN     NaN
1        Edu          Education    NaN    NaN    NaN     NaN
1        Bank         NaN          NaN    NaN    4       700
1        Eat          Food         NaN    NaN    NaN     NaN
2        Edu          Education    NaN    NaN    1       100
2        Bank         In_Pay       NaN    NaN    8       NaN
2        Eat          Food         4      200    NaN     NaN
3        Edu          Education    NaN    NaN    NaN     NaN
3        Bank         NaN          2      300    NaN     NaN
3        Eat          Food         NaN    NaN    NaN     NaN

关于df:

每当D_Nnon-NaN D_A应该是 non-NaN 时,同时C_N应该C_A是 NaN,反之亦然。

在上面的数据中,我想过滤任何D_N,D_A和非 NaN 的行C_NC_A

预期输出:

ID       Type         Desc         D_N    D_A    C_N     C_A
1        Edu          Education    3      100    NaN     NaN
1        Bank         In_Pay       NaN    NaN    8       900
1        Eat          Food         4      200    NaN     NaN
1        Bank         NaN          NaN    NaN    4       700
2        Edu          Education    NaN    NaN    1       100
2        Bank         In_Pay       NaN    NaN    8       NaN
2        Eat          Food         4      200    NaN     NaN
3        Bank         NaN          2      300    NaN     NaN

标签: python-3.xpandasdataframe

解决方案


print(df.dropna(subset=["D_N", "D_A", "C_N", "C_A"], how="all"))

印刷:

    ID  Type       Desc  D_N    D_A  C_N    C_A
0    1   Edu  Education  3.0  100.0  NaN    NaN
1    1  Bank     In_Pay  NaN    NaN  8.0  900.0
2    1   Eat       Food  4.0  200.0  NaN    NaN
4    1  Bank        NaN  NaN    NaN  4.0  700.0
6    2   Edu  Education  NaN    NaN  1.0  100.0
7    2  Bank     In_Pay  NaN    NaN  8.0    NaN
8    2   Eat       Food  4.0  200.0  NaN    NaN
10   3  Bank        NaN  2.0  300.0  NaN    NaN

推荐阅读