在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 个赞