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

统计两个DataFrame同列重复值出现次数的代码问题排查

问题排查与解决方案

错误原因

你代码里的核心问题是:在pandas的Series对象上使用in操作符时,它默认检查的是元素是否存在于Series的索引中,而不是Series的值里。df2['Col 1']的索引是[0,1,2],所以你循环的'a'、'b'、'c'都不在这个索引集合里,导致判断条件始终为False,最终count结果为0。

正确实现方式

方法1:转换为集合后判断(适合小数据量循环场景)

把目标列的值转换成Python集合,集合的in操作会直接检查值是否存在,同时提升判断效率:

count = 0
# 先把df2的Col 1值转成集合
target_set = set(df2['Col 1'])
for row in df1['Col 1']:
    if row in target_set:
        count += 1
print("Count:", count)

方法2:使用pandas向量化操作(推荐,高效无循环)

利用pandas内置的isin()方法实现向量化判断,再通过sum()统计符合条件的数量,这是pandas推荐的高效写法,尤其适合大数据量:

# isin()返回布尔Series,sum()自动将True视为1、False视为0求和
count = df1['Col 1'].isin(df2['Col 1']).sum()
print("Count:", count)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:22:09