#dataframe #julia #xlsx
#фрейм данных #джулия #xlsx
Вопрос:
У меня есть некоторые переменные в Excel, я хочу загрузить их в Julia и оценить линейную модель. Мои переменные состоят из действительных чисел, однако каждый столбец в фрейме данных, созданном XLSX, имеет тип Any.
Мне было интересно, есть ли у XLSX способ присвоить правильный тип каждому столбцу.
Спасибо
Ответ №1:
Просто используйте infer_eltypes=true
вот пример:
julia> DataFrame(XLSX.readtable("file.xlsx",1;infer_eltypes=true)...)
3×3 DataFrame
│ Row │ col1 │ col2 │ col3 │
│ │ Int64 │ Float64 │ String │
├─────┼───────┼─────────┼────────┤
│ 1 │ 1 │ 4.5 │ txt1 │
│ 2 │ 2 │ 5.5 │ txt2 │
│ 3 │ 3 │ 6.7 │ txt3 │
Ответ №2:
Я не знаю, возможно ли это в reader, но вот способ сделать это в постобработке:
julia> df = DataFrame(a=Any[1,2], b=Any[1,missing], c=Any[1.0,2.0], d=Any[1.0,missing])
2×4 DataFrame
Row │ a b c d
│ Any Any Any Any
─────┼────────────────────────────
1 │ 1 1 1.0 1.0
2 │ 2 missing 2.0 missing
julia> transform!(df, names(df) .=> ByRow(identity), renamecols=false)
2×4 DataFrame
Row │ a b c d
│ Int64 Int64? Float64 Float64?
─────┼────────────────────────────────────
1 │ 1 1 1.0 1.0
2 │ 2 missing 2.0 missing