Как вставить недостающие значения в мой фрейм данных в Julia - PullRequest
0 голосов
/ 09 октября 2018
df3[10, :A] = missing
df3[15, :B] = missing
df3[15, :C] = missing

Даже NA не работает.

Я получаю ошибку

MethodError: Невозможно convert объект типа Missings.Missing к объекту типаInt64 Это может быть связано с вызовом конструктора Int64 (...), поскольку конструкторы типов возвращаются к методам преобразования.Stacktrace: [1] setindex! (:: Array {Int64,1}, :: Missings.Missing, :: Int64) в ./array.jl:583 [2] insert_single_entry! (:: DataFrames.DataFrame, :: Missings.Missing, :: Int64, :: Symbol) в /home/jrun/.julia/v0.6/DataFrames/src/dataframe/dataframe.jl:361 [3] setindex! (:: DataFrames.DataFrame, :: Missings.Missing, :: Int64, :: Symbol) в /home/jrun/.julia/v0.6/DataFrames/src/dataframe/dataframe.jl:448 [4] include_string (:: String, :: String) в./loading.jl:522

1 Ответ

0 голосов
/ 09 октября 2018

Используйте функцию allowmissing!.

julia> using DataFrames

julia> df = DataFrame(a=[1,2,3])
3×1 DataFrame
│ Row │ a     │
│     │ Int64 │
├─────┼───────┤
│ 1   │ 1     │
│ 2   │ 2     │
│ 3   │ 3     │

julia> df.a[1] = missing
ERROR: MethodError: Cannot `convert` an object of type Missing to an object of type Int64

julia> allowmissing!(df)
3×1 DataFrame
│ Row │ a      │
│     │ Int64⍰ │
├─────┼────────┤
│ 1   │ 1      │
│ 2   │ 2      │
│ 3   │ 3      │

julia> df.a[1] = missing
missing

julia> df
3×1 DataFrame
│ Row │ a       │
│     │ Int64⍰  │
├─────┼─────────┤
│ 1   │ missing │
│ 2   │ 2       │
│ 3   │ 3       │

Вы можете видеть, какие столбцы в DataFrame допускают missing, потому что они выделены после имени типа под именем столбца.

Вы также можете использовать функцию allowmissing для создания нового DataFrame.

Обе функции могут принимать столбцы, которые должны быть преобразованы.

Наконец, есть disallowmissing /disallowmissing! пара, которая делает обратное (т. Е. Лишает Missing объединения из eltype, если вектор фактически не содержит пропущенных значений).

...