如何删除Julia中只有正值的数据框列?
我正在与 Julia 合作并尝试编辑 DataFrame。我的目标是保留至少一个值 <=0 的列。
例如,使用代码
using DataFrames
data = Dict("A"=>[1,7,2],
"B"=>[3,-9,-3],
"C"=>[3,0,6],
"D"=>[8,4,2],
"E"=>[4,3,-4])
df = DataFrame(data)
我得到以下结果
我正在尝试将其转换为以下 DataFrame
有一些选项可以根据条件删除行,但我没有发现任何对列执行相同操作的选项。
有谁知道如何以简单的方式做到这一点?
回答
有很多方法可以做到这一点,因为 DataFrames 提供了 Julia base 的全部灵活性,但在我看来,一个简单且清晰的方法是:
julia> data[!, any.(<=(0), eachcol(data))]
3×2 DataFrame
Row ? B E
? Int64 Int64
????????????????????
1 ? 3 4
2 ? -9 3
3 ? -3 -4
我还要补充一点,您不必创建 aDict来创建 a DataFrame,构造函数可以与String/Vector对一起正常工作:
julia> data = DataFrame("A"=>[1,7,2],
"B"=>[3,-9,-3],
"C"=>[3,0,6],
"D"=>[8,4,2],
"E"=>[4,3,-4])
3×5 DataFrame
Row ? A B C D E
? Int64 Int64 Int64 Int64 Int64
?????????????????????????????????????????
1 ? 1 3 3 8 4
2 ? 7 -9 0 4 3
3 ? 2 -3 6 2 -4