在Julia的DataFrame中将列类型从String转换为Int

时间:2017-05-03 09:25:55

标签: dataframe julia

我想将Julia中的列数据类型从字符串更改为int但到目前为止还没有运气。 convert()parse()都不起作用。有没有办法做到这一点?

我试过这些但没有效果

df[:serial] = int.(collect(df[:strSerial])) df[:serial] = map(x->parse(Int,x),df[:strSerial]) df[:serial] = Int64(df[:strSerial])

1 个答案:

答案 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])