我有这个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())