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

为何pd.DataFrame与pd.Series用in运算符检查索引值时行为不同?

pandas中DataFrame与Series的in运算符行为差异解释

核心原因:in运算符在不同pandas对象上的检查目标不同

  • DataFrame场景:对DataFrame使用in时,它会检查列名集合中是否包含目标值。你的示例里df的列是'a'和'b',显然1不在列名里,所以返回False。
  • Series场景:对Series使用in时,它会检查索引标签集合中是否包含目标值。你的示例里df["a"]用的是默认索引(0、1、2),1是其中一个索引标签,所以返回True。

额外说明:如何检查Series的数值是否存在

如果你的需求是检查某个值是否在Series的数据值里,而不是索引,需要明确调用values属性:

print(1 in df["a"].values)  # 输出 False,因为df["a"]的数值是[4,5,6]

内容的提问来源于stack exchange,提问作者E. R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:52:01