选择缺少值的Julia DataFrame的数字列

选择缺少值的Julia DataFrame的数字列,dataframe,julia,Dataframe,Julia,我想选择数据框中数据类型为Number子类型的所有列。但是,由于存在缺少值的列,因此数字列数据类型可能类似于Union{missing,Int64} 到目前为止,我提出了: using DataFrames df = DataFrame([["a", "b"], [1, missing] ,[2, 5]]) df_numerical = df[typeintersect.(colwise(eltype, df), Number) .!= Union{}] 这将产生预期的结果 问题 有没有更

我想选择数据框中数据类型为
Number
子类型的所有列。但是,由于存在
缺少值的列,因此数字列数据类型可能类似于
Union{missing,Int64}

到目前为止,我提出了:

using DataFrames

df = DataFrame([["a", "b"], [1, missing] ,[2, 5]])

df_numerical = df[typeintersect.(colwise(eltype, df), Number) .!= Union{}]
这将产生预期的结果

问题

有没有更简单、更惯用的方法?可能类似于:

df.select_dtypes(include=[np.number])

在大熊猫身上,根据对?

的回答,另一种方法是:

df_numerical = df[[i for i in names(df) if Base.nonmissingtype(eltype(df[i])) <: Number]]

df_numerical=df[[i代表名称中的i(df),如果是Base.nonmissingtype(eltype(df[i]))
julia>df[(这是一个非常好的解决方案,但会失败,例如对于
[missing,missing]
并且此向量的类型不允许使用数字。我假设数据帧中通常不存在只包含
缺少
值的列。但是,如果这样做,则可以将它们过滤掉:
df[(
julia> df[(<:).(eltypes(df),Union{Number,Missing})]
2×2 DataFrame
│ Row │ x2      │ x3 │
├─────┼─────────┼────┤
│ 1   │ 1       │ 2  │
│ 2   │ missing │ 5  │