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

如何将DataFrame中数字里的逗号替换为小数点?

解决方法

你的问题出在pd.to_numeric默认将逗号视为千位分隔符而非小数点,导致带逗号的数值无法被识别,最终转为NaN。可以通过以下两种方式解决:

方式1:先替换逗号为小数点,再转数值

先对目标列的所有字符串执行逗号替换操作,再转换为数值类型:

# 指定需要处理的列
target_cols = ['NB', 'Ppt Resale ', '5 yrs', '10 yrs', '15 yrs', '20 yrs']

# 替换逗号为小数点,再转换数值
df_useful[target_cols] = df_useful[target_cols].replace(',', '.', regex=True).apply(pd.to_numeric)

regex=True参数确保所有位置的逗号都会被替换,避免遗漏。

方式2:直接指定小数分隔符(更简洁)

pd.to_numeric提供了decimal参数,可直接指定逗号作为小数点分隔符,无需提前替换:

target_cols = ['NB', 'Ppt Resale ', '5 yrs', '10 yrs', '15 yrs', '20 yrs']
df_useful[target_cols] = df_useful[target_cols].apply(pd.to_numeric, errors='coerce', decimal=',')

这个方法让pandas直接识别逗号为小数点,转换过程一步完成。

验证转换结果

执行后可以通过df_useful.dtypes查看列类型,确认已转为数值类型(float64或int64),同时所有带逗号的数值都会正确转换为对应的小数,不会出现NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:35:28