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

Pandas按两列分组后统计第三列不同值的出现次数如何实现?

实现代码

import pandas as pd

df = pd.DataFrame({
    'colA': ['name1', 'name2', 'name2', 'name4', 'name2', 'name5'], 
    'colB': ['red', 'yellow', 'yellow', 'black', 'yellow', 'green'], 
    'colC': ['value1', 'vlaue2', 'value2', 'value4', 'value5', 'value6']
})

# 按colA、colB、colC三列分组,统计每个分组的行数
df_grouped = df.groupby(["colA", "colB", "colC"], as_index=False).size().rename(columns={'size':'count'})

# 如需得到你示例中折叠重复colA、colB值的展示效果,将两列设为多重索引即可
df_grouped = df_grouped.set_index(['colA', 'colB'])
print(df_grouped)

说明

  • 你之前的代码只按colA、colB两列分组,统计的是每个组合下colC的总条数,没有拆分不同colC值的计数,所以不符合需求。新增colC为分组维度后,就能统计每个(colA,colB)组合下不同colC值的出现次数。
  • 你示例预期输出中vlaue2计数为2,是因为构造测试数据时第三个colC值拼写为value2,如果统一拼写,统计结果会完全匹配你的预期。
  • size()统计所有行的数量,count()会自动忽略空值,可根据你的实际数据场景选择使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:03