还有另一种方法可以用 NaN 替换零和一等值吗?

Is there another way to replace values like zero and one with NaNs?

我正在尝试用 NaN 值替换整数值,例如 -1 和 0。这是代码:

df = df.replace(0, np.nan)
df = df.replace(-1, np.nan)

但是数据框很大:

 <class 'pandas.core.frame.DataFrame'>
 RangeIndex: 891221 entries, 0 to 891220
 Columns: 366 entries, LNR to ALTERSKATEGORIE_GROB
 dtypes: float64(267), int64(93), object(6)
 memory usage: 2.4+ GB

我 运行 它需要很多时间。

是否有比此代码更快的替代方法?

您正在重新创建数据框,并将 df 分配给一个新对象,您做了两次! 为什么不像这样进行内联替换?

df.replace([0,-1], np.nan, inplace=True)

inplace 默认为 False。有关 replace 的更多信息和示例,请查看 docs.

Here 是一个框架代码,它表明您通过这种方式实现的 加速因子几乎是 2