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

哈维尔

我有这个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行在 i 中只有 nan 值,则必须删除这些行。TMAX_x对于特定CODE值,列中必须有所有值 nan ,如果至少有 1 个值与 nan 不同,则TMAX_xi 不得删除任何行)。

预期结果:

         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

提前致谢。

hilberts_drinking_problem

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:如何查找一列中的哪些值在另一特定列(数据框)中具有NaN值

当另一列在熊猫中具有特定值时,用 NaN 替换列值

删除按一列分组的行,并且在panda / python的另一列中所有行均具有nan值

如何根据另一列的特定值从一列中删除NaN

删除具有任何/所有NaN值的行/列

如何根据即使只有一个重复项在另一列中具有特定值来删除列的所有重复行

从DataFrame中删除所有行,其中除一个特定值外的所有值均为NaN

如果另一列中的相应值也是NaN,则将一列中的所有值都设置为NaN

熊猫:删除所有列中的所有NaN值

如何在Python Pandas DataFrame中的任何行具有NaN值后删除列

如何根据另一列的计数删除NaN值为51%+的行

删除值不为NaN的Pandas DataFrame中的所有行

获取在一列中所有值均为nan的行

在数据帧中的所有列上填充 NaN 值,除了一列(不删除它)

删除具有重复的另一列的相同列值的所有行

删除一列中具有重复值但另一列中具有不同值的行

选择行中具有最少NaN值的矩阵的列

当 Pandas 中所有特定 4 列的值为 NaN 时删除行

删除最后一行具有 NaN 值的数据库列

从NumPy数组中删除仅具有“ nan”值的列

数据框:在同一列中具有非NaN的先前值的掩码

为 Pandas 中的一列过滤出具有 NaN 值的组

如何选择仅具有一个元素非nan值且其余所有均为NaN的行?

如何在Laravel查询构建器中获取一列具有最高值而另一列具有特定值的行

熊猫:删除具有nan值索引的行

熊猫-删除仅具有NaN值的行

从表中选择所有行,除了具有相同 id 的另一个表中的行在另一列中具有特定值

根据2列中的值删除行,除非另一列具有特定的文本字符

Python:如何删除列表中具有dict的nan值的行