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

如何通过指定数值/类别列表筛选Vaex数据集

问题描述

举个例子,我有如下数据集(模拟随机数据):

Indexcategoryvalue
1dog5
2cat22
3Tasselled Wobbegong44
4cat66
5Tasselled Wobbegong5
6dog23

上述数据存储在vaex dataframe中。实际使用场景中可能存在多达10000个类别,而非示例中的3个。我希望通过指定的类别列表筛选vaex dataframe,预期实现逻辑类似如下代码:

filter_category_list = ['cat','dog']
df = df[df.category in filter_category_list ]

上述代码无法正常运行,仅为我预期的写法参考

我期望得到的筛选输出结果如下:

Indexcategoryvalue
1dog5
2cat22
4cat66
6dog23

请问该如何在vaex中实现上述筛选需求?


解决方案

Vaex 表达式内置isin方法专门处理这类多值匹配筛选,性能优异,哪怕筛选列表包含上万个类别也能高效运行,不会额外占用过多内存。

直接使用下面的写法即可得到预期结果:

filter_category_list = ['cat', 'dog']
df_filtered = df[df.category.isin(filter_category_list)]

如果需要做反向筛选(保留不在目标列表内的类别),在判断条件前加~取反即可:

df_exclude = df[~df.category.isin(filter_category_list)]

注意:不要直接使用Python原生的in关键字编写筛选条件,Vaex的延迟计算表达式不支持这种原生语法,必须调用内置的isin方法才能生成正确的筛选计算逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:54:18