julia create an empty dataframe and append rows to it
dataframe, julia
Solution
A zero length array defined using only [] will lack sufficient type information.
julia> typeof([])
Array{None,1}
So to avoid that problem is to simply indicate the type.
julia> typeof(Int64[])
Array{Int64,1}
And you can apply that to your DataFrame problem
julia> df = DataFrame(A = Int64[], B = Int64[])
0x2 DataFrame
julia> push!(df, [3 6])
julia> df
1x2 DataFrame
| Row | A | B |
|-----|---|---|
| 1 | 3 | 6 |
Problem
I am trying out the Julia DataFrames module. I am interested in it so I can use it to plot simple simulations in Gadfly. I want to be able to iteratively add rows to the dataframe and I want to initialize it as empty. The tutorials/documentation on how to do this is sparse (most documentation describes how to analyse imported data). To append to a nonempty dataframe is straightforward: ``` df = DataFrame(A = [1, 2], B = [4, 5]) push!(df, [3 6]) ``` This returns. ``` 3x2 DataFrame | Row | A | B | |-----|---|---| | 1 | 1 | 4 | | 2 | 2 | 5 | | 3 | 3 | 6 | ``` But for an empty init I get errors. ``` df = DataFrame(A = [], B = []) push!(df, [3, 6]) ``` Error message: ``` ArgumentError("Error adding 3 to column :A. Possible type mis-match.") while loading In[220], in expression starting on line 2 ``` What is the best way to initialize an empty Julia DataFrame such that you can iteratively add items to it later in a for loop?