Julia создает пустой фреймворк и добавляет к нему строки
Я пробовал модуль Julia DataFrames. Меня это интересует, поэтому я могу использовать его для построения простых симуляций в Gadfly. Я хочу иметь возможность итеративно добавлять строки в dataframe, и я хочу инициализировать его как пустую.
Учебники/документация о том, как это сделать, разрежены (в большинстве документации описано, как анализировать импортированные данные).
Добавление к непустому фрейму данных является простым:
df = DataFrame(A = [1, 2], B = [4, 5])
push!(df, [3 6])
Возврат.
3x2 DataFrame
| Row | A | B |
|-----|---|---|
| 1 | 1 | 4 |
| 2 | 2 | 5 |
| 3 | 3 | 6 |
Но для пустого init я получаю ошибки.
df = DataFrame(A = [], B = [])
push!(df, [3, 6])
Сообщение об ошибке:
ArgumentError("Error adding 3 to column :A. Possible type mis-match.")
while loading In[220], in expression starting on line 2
Каков наилучший способ инициализации пустого объекта Julia DataFrame, чтобы вы могли итеративно добавлять элементы к нему позже в цикле for?
Ответы
Ответ 1
Массив нулевой длины, определенный с использованием только [], не будет иметь достаточной информации о типе.
julia> typeof([])
Array{None,1}
Итак, чтобы избежать этой проблемы, просто укажите тип.
julia> typeof(Int64[])
Array{Int64,1}
И вы можете применить это к своей проблеме DataFrame
julia> df = DataFrame(A = Int64[], B = Int64[])
0x2 DataFrame
julia> push!(df, [3 6])
julia> df
1x2 DataFrame
| Row | A | B |
|-----|---|---|
| 1 | 3 | 6 |