【发布时间】:2020-12-06 19:25:40
【问题描述】:
我应该如何在 DataFrame.jl 中执行缺失的插补? 例如,对于给定的 DataFrame,如何将所有缺失值变为 0。提前致谢!
【问题讨论】:
-
走到 Bogumil 的办公室问问他 :)
-
如果我还是要回答这个问题,最好将答案记录在 SO 上以备将来使用:)。
标签: julia
我应该如何在 DataFrame.jl 中执行缺失的插补? 例如,对于给定的 DataFrame,如何将所有缺失值变为 0。提前致谢!
【问题讨论】:
标签: julia
使用coalesce 和广播。因此,假设您的数据框存储在 df 变量中,那么只需执行以下操作:
df .= coalesce.(df, 0)
现在,如果您只想在选定的列中执行此替换,请执行以下操作:
@. df[!, cols] = coalesce(df[!, cols], 0)
其中cols 是一个列选择器。
实现此目的的另一种方法是使用transform!:
transform!(df, cols .=> ByRow(x -> coalesce(x, 0)), renamecols=false)
cols 是您的列选择器。将names(df) 用于cols 是否要在DataFrame 的所有列中进行插补。
这种方法在这种情况下有点冗长,但总的来说更灵活。
【讨论】: