You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia DataFrames如何使用多个值筛选保留指定行?

Julia DataFrames多值筛选的正确方法

你的问题出在df1.id .== in(df1.id, kp_id)这个筛选逻辑上:in(df1.id, kp_id)是判断整个id列是否属于元组kp_id,返回的是单个布尔值false,再用.==广播到整个列后,所有行的筛选条件都是false,自然返回空DataFrame。

下面是几种正确的多值筛选方式:

方法1:矢量化in操作(基础索引法)

利用Julia的广播特性,对每个id元素判断是否在目标集合中,注意要用Ref()包裹目标集合,避免被拆解:

kp_id = (1,2)
# 两种等价写法
df1[df1.id .∈ Ref(kp_id), :]
df1[in.(df1.id, Ref(kp_id)), :]

方法2:使用filter函数

通过行级别的判断实现筛选,逻辑更清晰:

kp_id = (1,2)
filter(row -> row.id ∈ kp_id, df1)

方法3:用@subset宏(简洁语法)

如果安装了DataFramesMeta包,可以用更直观的宏语法:

using DataFramesMeta
kp_id = (1,2)
@subset(df1, :id ∈ Ref(kp_id))

内容的提问来源于stack exchange,提问作者flee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:57:35