data-science Julia

Julia DataFrames.jl で数字で始まるカラム名を取得する場合の工夫

以前の記事 で紹介した

DataFrame(load("./input/train.csv"))

だと、どうやら数字が先頭のカラム名をそのまま扱ってしまう。

Julia DataFrame columns starting with number? - Stack Overflow

によると、 :2aa という表記は Julia 上シンボルではなく 1:2aa というレンジの扱いになってしまうため、"1st"というカラムが存在しているからといって、df[:1st] と書いても想定しているカラムを取得できない。

DataFrame.readtable だと、いい感じにカラム名の先頭を "1st" => "x1st" のように x を入れてくれていた(これも、実際データ触る時邪魔な気もするけど)

解決方法

ちゃんとシンボルだと指定してあげればいいので、

df[Symbol("1st")]

としてあげれば取得できる。少し不格好だが嫌いじゃない。