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

如何在Pandas中实现__contains__矢量化版本并输出DataFrame结果

Pandas判断DataFrame元素是否属于指定集合的最优方案

你创建了如下Pandas DataFrame和有效元素元组:

import pandas as pd

a = pd.DataFrame([["x", "y", "z"], ["y", "x", "z"]])
valid = ("x", "y")

尝试用print(a in valid)判断元素是否属于valid时无法生效,你需要得到和原DataFrame结构一致的布尔值结果:

0     1      2
0  True  True  False
1  True  True  False

你当前使用np.logical_or.reduce(a == v for v in valid)能实现判断,但返回的是numpy数组而非DataFrame。这里推荐更优的Pandas原生方案:

直接使用isin()方法,这是Pandas专门为判断元素是否属于集合设计的API,会直接返回结构完全匹配的布尔DataFrame:

result = a.isin(valid)
print(result)

运行后输出就是你期望的结果:

0      1      2
0   True   True  False
1   True   True  False

这个方案比numpy的方式更简洁,完全基于Pandas原生实现,不需要额外的numpy逻辑处理,同时直接保留原DataFrame的索引和列结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:52:10