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

如何在Pandas中仅对指定多列使用to_numeric并将无效值转为0?

解决Pandas多列批量转换数值型并替换无效值为0的问题

嘿,我来帮你搞定这个Pandas的小问题!

为什么会报错?

pd.to_numeric()这个函数默认只能处理一维数据(比如单个Series、列表或一维数组),你直接传入了包含多列的DataFrame(二维结构),所以它就抛出了arg must be a list, tuple, 1-d array, or Series这个错误啦。

解决方案:批量处理多列

我们可以用DataFrame.apply()方法,把pd.to_numeric()逐个应用到每一列上,就能实现批量转换了。具体步骤如下:

  1. 先定义需要处理的列名列表(避免重复书写,也方便后续维护):
cols_to_convert = ['Product1', 'product2', 'product3', 'product4', 'Total']

注意:Pandas对列名大小写敏感,要确保这里的列名和你的DataFrame里的完全一致哦!

  1. 对指定列批量执行转换,将无效值转为NaN后再填充为0:
# 逐列应用pd.to_numeric,错误值转为NaN;再把所有NaN替换为0
converted_columns = Tracker_sample[cols_to_convert].apply(pd.to_numeric, errors='coerce').fillna(0)
  1. 把转换后的列替换回原DataFrame(这样其他列不会被修改):
Tracker_sample[cols_to_convert] = converted_columns

这样操作后,你指定的5列就都被转换成数值型,所有空白、文本类的无效值都会被替换成0,其他列保持原样~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:02:48