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

如何检查Polars Series中每个元素是否为指定集合?

在Polars中检查Series元素是否为特定集合的方法

你需要实现类似Pandas中直接比较集合的功能,先回顾下Pandas的实现:

import pandas as pd
series = pd.Series([{'a'}, {'a','b'}, {'c'}])
series == {'a'}

在Polars中,由于集合类型无法直接通过==进行向量化比较,你可以通过元素级映射来实现相同逻辑,以下是两种常用方式:

方式一:直接处理Polars Series

使用map_elements方法遍历每个元素,与目标集合做比较:

import polars as pl

# 创建Polars Series
series = pl.Series([{'a'}, {'a','b'}, {'c'}])
# 定义目标集合
target_set = {'a'}

# 执行比较,返回布尔值Series
result = series.map_elements(lambda x: x == target_set)
print(result)

运行后会输出:

shape: (3,)
Series: '' [bool]
[
    true
    false
    false
]

方式二:DataFrame上下文处理

如果你的数据在DataFrame中,可以结合列表达式使用map_elements:

import polars as pl

df = pl.DataFrame({'sets': [{'a'}, {'a','b'}, {'c'}]})
target_set = {'a'}

# 添加新列存储比较结果
df_with_result = df.with_columns(
    pl.col('sets').map_elements(lambda x: x == target_set).alias('is_target_set')
)
print(df_with_result)

输出结果:

shape: (3, 2)
┌───────────┬────────────────┐
│ sets      ┆ is_target_set  │
│ ---       ┆ ---            │
│ set[str]  ┆ bool           │
╞═══════════╪════════════════╡
│ {"a"}     ┆ true           │
│ {"a", "b"}┆ false          │
│ {"c"}     ┆ false          │
└───────────┴────────────────┘

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:52:07