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

如何将DataFrame数据列中的字符值“nothing”替换为数值0

Pandas 替换指定字符为数值的解决方案

以下方案均适配大体积DataFrame,几百行规模下执行无任何性能压力:

  • 方案1:直接使用replace方法(最简洁)
    直接对目标列执行精准匹配替换,匹配到nothing时自动替换为0,替换完成后可统一将列转换为数值类型:
# 替换指定值
df['Candy'] = df['Candy'].replace('nothing', 0)
# 转换列类型为整数,避免仍为object类型影响后续数值计算
df['Candy'] = df['Candy'].astype(int)
# 如果存在其他非标准数值格式,可改用to_numeric做容错转换
# df['Candy'] = pd.to_numeric(df['Candy'], errors='coerce').fillna(0).astype(int)
  • 方案2:条件赋值(灵活扩展适配复杂逻辑)
    如果后续需要叠加更多判断条件,可以用loc做精准条件赋值:
df.loc[df['Candy'] == 'nothing', 'Candy'] = 0
df['Candy'] = df['Candy'].astype(int)
  • 方案3:多列批量处理
    如果有多列存在同样的nothing值需要替换,可以批量操作:
# 填入所有需要处理的列名
target_cols = ['Candy', 'Col1', 'Col2']
df[target_cols] = df[target_cols].replace('nothing', 0).apply(pd.to_numeric)

如果需要兼容大小写不同的nothing写法(比如Nothing、NOTHING),可以开启正则匹配和忽略大小写参数:

df['Candy'] = df['Candy'].replace(r'^nothing$', 0, regex=True, case=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:01