You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将DataFrame数值列的0转为缺失值(解决replace不生效)

解决DataFrame数值列0转缺失值的问题

你遇到的问题是因为df_num.replace(0, np.nan)默认会返回一个新的DataFrame,不会修改原有的df_num或原始数据集,所以你看不到变化。下面是几种可行的实现方式:

  • 直接赋值覆盖原变量:

    import numpy as np
    # 替换后赋值回df_num
    df_num = df_num.replace(0, np.nan)
    # 如果要同步更新原始DataFrame的数值列
    df[df_num.columns] = df_num
    
  • 使用inplace=True参数直接修改原df_num:

    df_num.replace(0, np.nan, inplace=True)
    # 同步到原始df需将替换后的列重新赋值回去
    df[df_num.columns] = df_num
    
  • 用mask函数实现替换(逻辑是把满足条件的值替换为NaN):

    df_num = df_num.mask(df_num == 0)
    # 同步到原始df
    df[df_num.columns] = df_num
    

注意:替换后数值列的类型会从整数转为浮点型,这是因为NaN属于浮点类型,属于正常现象。

内容的提问来源于stack exchange,提问作者Roshini Prashanthica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:42:01