【问题标题】:Assigning a key-value pair from a dict to a DataDrame is not working in Julia 1.1将 dict 中的键值对分配给 DataFrame 在 Julia 1.1 中不起作用
【发布时间】:2019-03-27 09:34:39
【问题描述】:

我正在尝试在 Julia 1.1 中从 Dict 构造 DataFrame。字典中的键是列名,值是包含列应该具有的值的向量。我虽然它会像

一样简单
df = DataFrame()
for (key,value) in datadict
  df[key] = value
end

但这会引发ERROR: LoadError: MethodError: no method matching setindex!(::DataFrame, ::Array{String,1}, ::String)。我没有直接使用变量key,而是尝试传递一个符号:key作为列名,如df[:key] = value,它删除了错误消息,但只将第一个键值对作为列,以key 为列名:

10×1 DataFrame
│ Row │ key        │
│     │ String     │
├─────┼────────────┤
│ 1   │ 2019-03-04 │
│ 2   │ 2019-03-05 │
│ 3   │ 2019-03-06 │
│ 4   │ 2019-03-07 │
│ 5   │ 2019-03-08 │
│ 6   │ 2019-03-09 │
│ 7   │ 2019-03-10 │
│ 8   │ 2019-03-11 │
│ 9   │ 2019-03-12 │
│ 10  │ 2019-03-13 │

这显然不是我想要的。我在这里做错了什么?

【问题讨论】:

    标签: dataframe dictionary julia data-conversion


    【解决方案1】:

    这段代码应该可以工作:

    using DataFrames
    datadict = Dict(1 => ["2019-03-04", "2019-03-04"], 2 => ["1996-26-12", "1996-25-12"])
    df = DataFrame()
    for (key, value) in datadict
           df[Symbol(key)] = value
    end
    

    您必须使用Symbol(key) 创建您的密钥符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      相关资源
      最近更新 更多