如何在julia中仅选择dataframe列的子集

Vis*_*hnu 7 julia

我有几列的数据帧,如column1,column2 ... column100.如何仅选择列的子集(例如,不是column1)应返回列column2 ... column100的所有列.

data[[colnames(data) .!= "column1"]])
Run Code Online (Sandbox Code Playgroud)

似乎不起作用.

我不想改变数据帧.我只想选择所有没有特定列名的列,如我的示例所示

Ian*_*ske 15

从 DataFrames 0.19 开始,您现在似乎可以做到

select(data, Not(:column1))
Run Code Online (Sandbox Code Playgroud)

选择除列之外的所有内容column1。要选择除多列之外的所有列,请在倒排索引中使用数组:

select(data, Not([:column1, :column2]))

Run Code Online (Sandbox Code Playgroud)


Nil*_*dat 8

正如@Reza Afzalan所说,你要做的是返回一个字符串数组,而DataFrames中的列名是符号.

鉴于朱莉娅没有条件列表理解,我猜你能做的最好的事情就是

data[:, filter(x -> x != :column1, names(df))]
Run Code Online (Sandbox Code Playgroud)

这将为您提供删除了第1列的数据集(不会改变它).您可以将其扩展为检查名称列表:

data[:, filter(x -> !(x in [:column1,:column2]), names(df))]
Run Code Online (Sandbox Code Playgroud)