如何判断Polars Series的数值是否相等?
仅判断Polars Series数值是否相等的方法
Polars的Series.series_equal默认会同时校验名称和数值,导致名称不同但数值一致的Series返回False。你可以通过以下两种方式仅判断数值是否相等:
方法1:使用series_equal的check_names参数
这是最直接的方案,series_equal本身提供了关闭名称检查的参数:
import polars as pl a = pl.Series("a", [1,2,3]) b = pl.Series("b", [1,2,3]) a.series_equal(b, check_names=False) # 返回 True
该方法还支持其他可选参数来控制校验逻辑:
check_dtype=False:允许不同数据类型的Series(比如int和float)只要数值一致就返回Truecheck_nan_equal=True(默认):将NaN视为相等,关闭则NaN会被判定为不等
方法2:逐元素比较后判断全部相等
通过==运算符逐元素比较,再用.all()判断是否所有元素都相等:
(a == b).all() # 返回 True
⚠️ 注意:这种方式存在两个限制:
- 两个Series必须长度相同,否则会抛出错误
- 对
NaN的处理与series_equal不同:NaN == NaN会返回False,因此如果Series包含NaN,这种方法会返回False,而series_equal默认会将NaN视为相等
内容的提问来源于stack exchange,提问作者drhagen
相关产品推荐
相关产品推荐

