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

标签 python data-science feature-engineering

我正在尝试用 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/

相关文章:

python - Pandas - 对非日期时间重新采样

python - 使用 scipy/numpy 在 Python 中解析字母数字 CSV 的 final方法

python - 映射 - 特征重要性与标签分类

python - Pandas 简单的并行/多进程计算

python - 如何使用 dateparser 检测字符串中的日期?

python - 简单问题 - NoSuchElementException 和 WebDriverException 在此函数中意味着什么?

python - scipy.interp2d 警告和网格外的大错误

python - 在 Pandas 中访问多索引数据帧时出现 KeyError

machine-learning - 将一天中的几小时和一周中的某一天表示为机器学习中值(value)预测模型的特征的最佳方式是什么?

R:如何根据最近的 N 行值生成具有行值的列