Julia中如何去除DataFrame读取的CSV数值列中的千位分隔逗号
错误原因分析
- 第一次执行无效果:你没有使用Julia的广播运算符
.,replace(df2.Volume, "," => "")只会匹配整列中完全等于","的元素做替换,不会遍历每个元素删除其内部的逗号,因此列无变化。 - 第二次报错:你把
df2.Volume用引号包裹变成了字面量字符串"df2.Volume",相当于对这个固定字符串做解析,自然会因为首字符'd'不是有效数字抛出错误。
正确处理方法
场景1:数据已经读入DataFrame
直接对整列做广播操作,逐元素删除逗号后转换为整型即可:
df2.Volume = parse.(Int, replace.(df2.Volume, "," => ""))
如果担心列中存在异常格式的值,可以改用tryparse避免程序直接中断,异常值会被转换为missing:
df2.Volume = tryparse.(Int, replace.(df2.Volume, "," => ""))
场景2:还未读取CSV文件
更高效的方式是读取时直接处理千位分隔符,使用CSV.jl的thousands关键字参数即可自动识别带逗号的数值,不需要事后处理:
using CSV, DataFrames df2 = CSV.read("你的文件路径.csv", DataFrame, thousands=',')
这个方法会自动把所有带逗号千位分隔符的列识别为数值类型,无需额外操作。
内容的提问来源于stack exchange,提问作者Jeremy S
相关产品推荐
相关产品推荐

