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) at. /loading.jl:522
Всего 1 ответ
Используйте 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!
пара, которая делает обратное (т. е. eltype
необязательный союз из eltype
если вектор фактически не содержит отсутствующих значений).