Назначение пары ключ-значение из dict в DataDrame не работает в Julia 1.1 - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь построить DataFrame из Dict в Julia 1.1. Ключи в словаре - это имена столбцов, а значения - это векторы, содержащие значения, которые должен иметь столбец. Я думал, что это будет так же просто, как

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 │

Это явно не то, что я хочу. Что я тут не так делаю?

1 Ответ

1 голос
/ 27 марта 2019

Этот код должен работать:

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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...