检查 DataFrame 名称是否包含另一个数组中的名称

Jon*_*nas 3 operators subset dataframe julia

我想检查我的 DataFrame 是否包含我指定的所有列。当然,我可以使用下面的代码来完成,但我觉得应该可以在一行中完成。

using DataFrames
bools = Array{Bool}([])
df = DataFrame(A=[1,2], B=[3,4], C=[5,6])
for name in ["A", "B"]
    push!(bools, name ? names(df))
end
false ? bools
Run Code Online (Sandbox Code Playgroud)

Jon*_*nas 5

我找到了。该?运算符可用于检查一个数组是否是另一个数组的子集:

# "?" can be typed by \subseteq<tab>
julia> ["A", "B"] ? names(df)
true

julia> issubset(["A", "B"], names(df))
true
Run Code Online (Sandbox Code Playgroud)

这些运算符的?(不是子集)、?(子集但不相等)或?(超集)变体也可能有用。

# "?" can be typed by \nsubseteq<tab>
julia> ["A", "D"] ? names(df)
true

# "?" can be typed by \subsetneq<tab>
julia> ["A", "B", "C"] ? names(df)
false

julia> ["A", "B"] ? names(df)
true

# "?" can be typed by \supseteq<tab>
julia> ["A", "B", "C", "D"] ? names(df)
true
Run Code Online (Sandbox Code Playgroud)