我想将Julia中的列数据类型从字符串更改为int但到目前为止还没有运气。 convert()
和parse()
都不起作用。有没有办法做到这一点?
我试过这些但没有效果
df[:serial] = int.(collect(df[:strSerial]))
df[:serial] = map(x->parse(Int,x),df[:strSerial])
df[:serial] = Int64(df[:strSerial])
答案 0 :(得分:5)
parse()
应该有效:
df = DataFrame(
yearsAsString = ["2016", "2017", "2018"]
)
df[:years] = [parse(Int,x) for x in df[:yearsAsString]]
df
3×2 DataFrames.DataFrame
│ Row │ yearsAsString │ years │
├─────┼───────────────┼───────┤
│ 1 │ "2016" │ 2016 │
│ 2 │ "2017" │ 2017 │
│ 3 │ "2018" │ 2018 │
(记得使用Int
和大写字母I)
已编辑(感谢MattB)
在目前的Julia 0.5.1(和0.6 alpha)中,这也有效:
df[:y2] = parse.([Int],df[:yearsAsString])
仅在Julia 0.6中:
df[:y2] = parse.(Int,df[:yearsAsString])