如何删除在另一列中具有特定值的所有NaN值的行?

  • 本文关键字:NaN 一列 删除 何删除 python pandas
  • 更新时间 :
  • 英文 :


我有这个df:

CODE    MONTH_DAY TMAX_x
0        113250   01-01    nan
1        113250   01-02    nan
2        113250   01-03    nan
3        113250   01-04    nan
4        113250   01-05    nan
...     ...     ...
16975  47E94706   12-27    22.4
16976  47E94706   12-28    21.1
16977  47E94706   12-29    23.2
16978  47E94706   12-30    24.9
16979  47E94706   12-31    24.4
[16980 rows x 3 columns]

我想删除在CODE列中具有特定代码值的行,只有当它们的所有TMAX_x值都是nan时。

例如:如果CODE等于133250的所有行在TMAX_x中只有nan值,则必须删除这些行。(特定CODE值的TMAX_x列中必须有所有值nan,如果至少有一个值与TMAX_x中的nan不同,则不得删除任何行)

预期结果:

CODE    MONTH_DAY TMAX_x
...     ...     ...
16975  47E94706   12-27    22.4
16976  47E94706   12-28    21.1
16977  47E94706   12-29    23.2
16978  47E94706   12-30    24.9
16979  47E94706   12-31    24.4

提前感谢。

您可以使用groupby后跟filter来保留在TMAX_x列中至少有一个非空值的组:

df.groupby('CODE').filter(lambda gp: gp.TMAX_x.notna().any())

最新更新