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

使用Python pandas按cluster-1分组取cluster-2最高频次值求助

基于你已有的计数结果的后续操作

你当前得到的分组计数结果是MultiIndex的Series结构,只需按以下步骤处理即可得到目标输出:

# 你的现有代码,得到各cluster-2的出现次数
counts = df.groupby(['cluster-1','cluster-2'])['cluster-2'].count()

# 转换为DataFrame并重命名计数列
count_df = counts.reset_index(name='occur_count')
# 按cluster-1分组,取每组中出现次数最高的对应行,保留需要的两列结果
result = count_df.loc[count_df.groupby('cluster-1')['occur_count'].idxmax(), ['cluster-1', 'cluster-2']]
# 可选:重置索引,让结果更规整
result = result.reset_index(drop=True)

更简便的一步实现方案

如果不需要单独统计频次的中间结果,可以直接调用pandas的众数方法实现需求,代码更简洁:

# 直接按cluster-1分组,提取每组cluster-2的众数(出现频次最高的值)
result = df.groupby('cluster-1')['cluster-2'].apply(lambda x: x.mode()[0]).reset_index(name='cluster-2')

特殊场景处理

如果某组cluster-1下存在多个cluster-2值的频次并列最高的情况,上述代码默认返回排序靠前的首个最高频次值。如果需要保留所有并列最高的结果,可以用以下代码:

count_df = df.groupby(['cluster-1','cluster-2']).size().reset_index(name='count')
result = count_df[count_df['count'] == count_df.groupby('cluster-1')['count'].transform('max')]

内容的提问来源于stack exchange,提问作者Patrik Novotný

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:24:00