使用`contains`函数从Julia Dataframe中选择

时间:2013-10-10 18:51:16

标签: julia

我有一个DataFrame df,其中一列名为“cond”。本专栏中的一个值是“aer”。要选择cond ==“aer”的所有行,此代码有效:

select(:(cond .== "aer"), df)

但这不是

select(:(contains(["aer"],cond)), df)

失败并显示错误:

  

错误:所有SubDataFrame索引必须是> 0   在/Users/seanmackesey/.julia/DataFrames/src/dataframe.jl:1007的SubDataFrame中   in sub at /Users/seanmackesey/.julia/DataFrames/src/dataframe.jl:1020   选择/Users/seanmackesey/.julia/DataFrames/src/dataframe.jl:1031

我查看了源代码但未能理解这里发生了什么。我可以在这样的表达式谓词中添加什么一般限制?

1 个答案:

答案 0 :(得分:1)

我认为问题是contain不是矢量化操作:

julia> contains(["aer"], ["aer", "aer", "abr"])
false

这可能意味着它没有生成有效的索引。

通常,应在select中起作用的表达式族是生成索引向量的表达式。有一些破案,但我认为这种情况下的问题只是谓词没有产生有用的指数。