【问题标题】:Is there another way to replace values like zero and one with NaNs?是否有另一种方法可以用 NaN 替换零和一等值?
【发布时间】:2019-12-05 11:00:04
【问题描述】:

我正在尝试将 -1 和 0 等整数值替换为 NaN 值。代码如下:

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

我运行它需要很多时间。

有没有比这段代码更快的替代方法?

【问题讨论】:

    标签: python data-science feature-engineering


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的,它好多了。
    猜你喜欢
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    相关资源
    最近更新 更多