gpt4 book ai didi

julia - 我无法直接使用 `subset` 在 Julia 的 DataFrames 中使用 `in` 过滤许多值

转载 作者:行者123 更新时间:2023-12-05 02:26:01 25 4
gpt4 key购买 nike

想知道为什么在使用“子集”时不能使用“in”。 “过滤器”可以使用它。

using DataFrames

df=DataFrame( a=["cat","dog","tiger","parrot","cat","parrot"],
r=[2,5,1,3,6,3])

subset(df, :a => a->a in["cat", "parrot"], :r => r->r.>1) ##get an error

#but

subset(df, :a => ByRow(a->a in ["cat", "parrot"]), :r => r->r.>1)

#or

filter([:a,:r]=>(a,r) -> a in ["cat", "parrot"] && r.>1, df)

#Thanks.

最佳答案

文档内容如下:

help?> subset
... All transformations must produce vectors containing true or false.

因此你可以这样做

julia> subset(df, :a => a -> in.(a, Ref(["cat", "parrot"])), :r => r -> r .> 1 )

julia> subset(df, [:a, :r] => (a,r) -> (in.(a, Ref(["cat", "parrot"]))) .& (r .> 1) )

请注意,如果列表很长,您可能希望将 ["cat", "parrot"] 包装到一个集合中。

关于julia - 我无法直接使用 `subset` 在 Julia 的 DataFrames 中使用 `in` 过滤许多值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74076787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com