我正在尝试用 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 倍的加速因子。
关于python - 还有另一种方法可以用 NaN 替换零和一等值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57231215/