繁体   English   中英

根据条件将 Pandas DataFrame 中的一行替换为“NaN”

[英]Replace a row in Pandas DataFrame with 'NaN' based on condition

我有一个名为df (378000, 82) 的 Pandas DataFrame ,我想根据特定条件用NaN替换整行。 条件是df.halon_gas列中大于 20 的任何值,我想用NaN替换整行。 这是我想要过滤数据的方式,这样我就不会丢失索引值。

谢谢!

如果您对消失的行感到满意,那么我建议您这样做:

df.reset_index(level=0, inplace=True)
df = df[df.halon_gas <= 20]
df.set_index("index", inplace=True)

这里发生的情况如下:

  1. 索引被重置,因此您有一个额外的列,其中包含删除前的索引值。
  2. 仅保留 df.halon_gas <= 20 的行。
  3. 旧的索引值再次设置为 DataFrame 的索引。

首先获取值的所有索引,低于 20

    idx = df[df.halon_gas >= 20].index

然后将所有列和所有低于 200 的列的值设置为 None

    df.set_value(idx, df.columns , None)

这应该在值低于 20 的行中写入 None/Nan

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM