2017-05-03 146 views
3

Juliaの列データ型をstringからintに変更したいが、これまでのところ運がない。 convert()でもparse()でも動作しません。それを行う方法はありますか?JuliaのDataFrameで列型をStringからIntに変換する

私はこれらを試してみましたが、どれも

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

+0

ある[私は列のデータ型を変更するにはどうすればよいですフロアからジュリアの文字列に?](http://stackoverflow.com/questions/43605432/how-can-i-change-column-data-type-from-float-to-string-in-julia?) –

+0

@ Atomic_alarmの違いは、構文の同じスタイルは動作しません – bensw

答えて

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 │ 

(資本IとIntを使用することを忘れないでください)

編集(おかげでMattB)

現在のジュリア0.5.1(0.6アルファ)で

が、これはあまりにも動作します:

df[:y2] = parse.([Int],df[:yearsAsString]) 

ジュリア0.6でのみ:このとの違いは何

df[:y2] = parse.(Int,df[:yearsAsString]) 
+0

ありがとうございました。それは完全に機能します。 – bensw

+0

私は、オーバーロードされた解析関数を持っていると思います。 'df [:x2] = parse(int、df [:x])' – Antonello

+1

@Antonello - Julia 0.6ではドット放送を使うことができます: 'parse。(Int、df [:x])'。 –

関連する問題