以文本形式存储的数字

在Excel xls表中,一些数据以文本形式存储,且以逗号隔开,比如“1,000”。这种情况挺常见。
使用包ExcelFiles.jl读取这些数据到DataFrame中,发现它们不能被自动解析为数值。
有什么便捷方法处理这种问题?
谢谢!

写个循环来 parse,给你举个例子吧。

julia> A=["1000,00", "20","123,22"]
3-element Vector{String}:
 "1000,00"
 "20"
 "123,22"
julia> A=replace.(A,","=>"") # 把 , 删除
3-element Vector{String}:
 "100000"
 "20"
 "12322"
julia> parse.(Int,A)
3-element Vector{Int64}:
 100000
     20
  12322

非常感谢。结合replace和parse构造个函数,搞定了。

例子:

function parse_comma_strs(strs::String)
    result = tryparse(Float64, replace(strs, ","=>""))
    if isa(result,Nothing)
        return strs
    else
        return result
    end
end

function parse_comma_strs(number_or_missing::Union{Number,Missing})
    return number_or_missing
end

df = DataFrame(A=["ss","1,000"], B=["ll,ll","2,000"])
parse_comma_strs.(df)

输出

2 rows × 2 columns
	A	B
	Any	Any
1	ss	ll,ll
2	1000.0	2000.0
1 个赞