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

如何检查Pandas DataFrame的某一列是否包含指定值?

检查pandas Series/DataFrame列是否包含指定值的方法

你遇到"h" in df["two"]返回False的原因:
对Series直接使用in运算符时,pandas默认检查的是索引标签而非元素值,你的示例中df["two"]的索引是[0,1,2],自然找不到值"h",所以返回False。


推荐的检查方法

1. 通用最优方案:isin() + any()组合

这是最清晰、兼容性最强的写法,同时支持单个值、多个值的检查:

# 检查单个值是否存在
df["two"].isin(["h"]).any() # 返回 True

# 支持同时检查多个值是否存在(只要有一个存在就返回True)
df["two"].isin(["e", "h"]).any() # 返回 True

逻辑说明:

  • .isin()接收一个可迭代对象,返回和Series长度一致的布尔Series,对应位置元素在传入列表中则为True,否则为False
  • .any()会判断布尔Series中是否存在至少一个True,最终返回布尔值作为结果

2. 单值检查简化写法:等值判断 + any()

如果只需要检查单个值,也可以用逐行等值判断的写法,可读性也很高:

df["two"].eq("h").any() # 返回 True

3. 可选写法:转numpy数组后用in检查

如果习惯用in的写法,可以先取Series的values属性得到numpy数组,此时in会检查数组元素:

"h" in df["two"].values # 返回 True

注意:该写法在数据量很大时性能不如isin()优化程度高,且处理缺失值的兼容性略差,仅建议熟悉numpy的用户使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:06:03