2

我有一个像下面这样的 df,我想从 df 中获取字典。

df = DataFrame(id=[1, 2, 3, 4], value=["Rajesh", "John", "Jacob", "sundar"], other=[0.43, 0.42,0.54, 0.63])

│ Row │ id    │ value  │ other   │
│     │ Int64 │ String │ Float64 │
├─────┼───────┼────────┼─────────┤
│ 1   │ 1     │ Rajesh │ 0.43    │
│ 2   │ 2     │ John   │ 0.42    │
│ 3   │ 3     │ Jacob  │ 0.54    │
│ 4   │ 4     │ sundar │ 0.63    │

预期输出:

{1: 'Rajesh', 2: 'John', 3: 'Jacob', 4: 'sundar'}

我知道如何在熊猫中做到这一点,

df.set_index("id")["value"].to_dict()

大熊猫在朱莉娅中的等效代码是什么?

4

1 回答 1

1

要从数据框中制作字典,您可以编写:

julia> Dict(pairs(eachcol(df)))
Dict{Symbol,AbstractArray{T,1} where T} with 3 entries:
  :value => ["Rajesh", "John", "Jacob", "sundar"]
  :id    => [1, 2, 3, 4]
  :other => [0.43, 0.42, 0.54, 0.63]

但是,您要求的是从向量制作字典(恰好存储在数据框中),您可以通过以下方式执行此操作(模式非常相似,但仅应用于向量):

julia> Dict(pairs(df.value))
Dict{Int64,String} with 4 entries:
  4 => "sundar"
  2 => "John"
  3 => "Jacob"
  1 => "Rajesh"

并且如果您想要从写入的映射:id:value假设:id是唯一的;再次 - 它只是两个向量,它们存储在数据框中的事实在这里并不重要):

julia> Dict(Pair.(df.id, df.value))
Dict{Int64,String} with 4 entries:
  4 => "sundar"
  2 => "John"
  3 => "Jacob"
  1 => "Rajesh"
于 2020-09-05T09:10:06.140 回答