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

如何统计DataFrame中A/B为两列最大值的行数?

统计DataFrame中A/B为两列最大值的行数

以下是几种简洁的实现方式,基于你提供的示例DataFrame:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 7], 'B': [5, 10, 1]})

方法一:直接列间比较(最简洁)

  • 统计A为A、B最大值的行数:
    count_a = (df['A'] >= df['B']).sum()
    # 结果:1
    
  • 统计B为A、B最大值的行数:
    count_b = (df['B'] >= df['A']).sum()
    # 结果:2
    

注:如果存在A和B相等的行,这种方式会同时计入两个统计结果,符合A=max(A,B)和B=max(A,B)的定义

方法二:用max方法逐行匹配

如果需要严格通过“等于最大值”的逻辑计算(结果和方法一一致):

  • 统计A为最大值的行数:
    count_a = (df['A'] == df[['A', 'B']].max(axis=1)).sum()
    
  • 统计B为最大值的行数:
    count_b = (df['B'] == df[['A', 'B']].max(axis=1)).sum()
    

方法三:一次性统计两者

可以用idxmax结合value_counts,直接得到两列各自作为每行最大值的行数:

max_col_counts = df[['A', 'B']].idxmax(axis=1).value_counts()
# 输出结果:
# B    2
# A    1
# dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:22:05