Thanks John,
those are useful comments!
I'm producing one-row datasets to be appended later, and hadn't thought
enough about this distinction. Enclosing my values in 1-element arrays
solved my problem.
Best regards,
Erik
On Sunday, October 19, 2014 6:36:55 PM UTC+2, John Myles White wrote:
>
> There’s a deeper conceptual problem here: what format is the data stored
> in?
>
> There are two coherent formats involving Dict’s that can be converted:
> Dict{Vector} and Vector{Dict}.
>
> Dict{Vector} looks something like this in 0.4 notation:
>
> input Dict(
> :a => [1, 2],
> :b => [2, 3]
> )
>
> This is a column-oriented format and seems to be what DataFrames assumes
> your Dict represents.
>
> Vector{Dict} looks something like this:
>
> input = [
> Dict(:a => 1, :b => 2),
> Dict(:a => 2, :b => 3),
> ]
>
> This is a row-oriented format and seems to resemble what you’re both
> using.
>
> I have a work-in-progress to support these two styles of input that should
> land in another month or so.
>
> — John
>
> On Oct 19, 2014, at 9:32 AM, [email protected] <javascript:> wrote:
>
> > On Wednesday, October 15, 2014 1:09:01 AM UTC+2, James Kyle wrote:
> >> So I tried:
> >>
> >> convert(DataFrame, dict_data)
> >>
> >> This returns
> >>
> >> ERROR: ArgumentError("All columns in Dict must have the same length")
> >> in convert at
> /Users/jkyle/.julia/v0.3/DataFrames/src/dataframe/dataframe.jl:1001
> >
> > I had this same problem just now. The problem is that you (and I!) have
> string values in the dictionary. The convert function looks at the length
> of the strings and see a vector of characters, and these are not
> conformable to the unit-length values in the non-string entries.
> >
> > My workaround was creating the dataframe from a dictionary where all the
> strings had been cut to a single character. When the dataframe is created,
> I could update the values with the actual (and longer) string values. Not
> beautiful, but it works for now.
> >
> > One of the motivations creating the dataframe from a dict is that the
> set of columns is not always known, it would be useful if the convert
> function could allow for string-values. Are there experts who know if this
> would be possible?
> >
> > Best regards,
> > Erik Ø. Sørensen.
> >
> >
> >
>
>