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

如何在Python中统计指定列值相同与不同的行数?

统计两列值相同/不同行数的解决方案

你用duplicated()函数没效果是因为它的作用是检测整行或指定列组合的重复记录,不是用来逐行比较两列的值是否相等。针对你的需求,用pandas的矢量化比较操作就能高效解决,7万行的规模完全没问题:

核心实现步骤

  • 用eq()方法逐行比较两列的值是否相等,返回一个布尔型Series(相等为True,不等为False)
  • 对布尔Series求和,True会被视为1,直接得到相同值的行数
  • 不同值的行数可以用总行数减去相同行数,或者直接用ne()方法(不等于)求和

完整代码示例

import pandas as pd

# 加载你的数据集(替换成实际加载方式,比如read_excel等)
df = pd.read_csv('your_data.csv')

# 统计两列值相同的行数
same_count = df['days_on_the_market_last_broker'].eq(df['days_on_the_market_all_broker']).sum()

# 统计两列值不同的行数
diff_count = df.shape[0] - same_count
# 或者用ne()直接计算:diff_count = df['days_on_the_market_last_broker'].ne(df['days_on_the_market_all_broker']).sum()

# 输出结果
print(f"两列值相同的行数:{same_count}")
print(f"两列值不同的行数:{diff_count}")

补充说明

这种矢量化操作完全避免了循环,处理7万行数据速度极快,不会有性能问题。如果你的数据里存在缺失值(NaN),eq()会把NaN和NaN的比较结果视为False,如果需要把NaN相等也算作相同,可以先处理缺失值,或者用df['col1'].fillna(-1).eq(df['col2'].fillna(-1)).sum()这类方式调整(用一个不影响的占位值替换NaN)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:39:58