如何删除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


以上是如何删除Julia中只有正值的数据框列?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>