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

如何统计DataFrame中两列值相同的行数?

统计DataFrame中两列取值相同的行数

嘿,这个需求太常见了,我给你几个简单高效的方法,分分钟搞定!

方法一:直接对比求和(最直观)

最直接的思路就是逐行对比a和b列的取值,生成一个布尔型Series,然后用sum()统计其中True的数量(毕竟计算时True会被当作1,False当作0)。

代码示例:

import pandas as pd

# 假设你的DataFrame是df
count = (df['a'] == df['b']).sum()
print(f"两列取值相同的行数:{count}")

方法二:用eq()方法(链式调用更顺手)

Pandas的Series自带eq()方法,功能和==完全一致,如果你习惯链式调用代码,这个写法会更顺畅:

count = df['a'].eq(df['b']).sum()

效果和方法一一模一样,选你看着顺眼的就行~

方法三:先筛选再计数(方便查看符合条件的行)

如果你不仅要计数,还想看看哪些行符合条件,那可以先过滤出目标行,再统计行数:

# 筛选出a和b取值相同的行
matching_rows = df[df['a'] == df['b']]
# 用len()统计行数
count = len(matching_rows)
# 或者用shape[0],效果一样
count = matching_rows.shape[0]

这样你还能保留matching_rows这个DataFrame,后续想查看或处理这些行都很方便。

注意点:处理缺失值(NaN)

如果你的数据里有NaN,要注意NaN不等于任何值,包括它自己,所以上面的方法会把两列都是NaN的行排除在外。如果需要把这种情况也统计进去,可以这么写:

# 统计「值相等」或者「两者都是NaN」的行数
count = ((df['a'] == df['b']) | (df['a'].isna() & df['b'].isna())).sum()

这个细节很重要,别漏了哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:54:41