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

如何在Pandas中按分组聚合众数生成新数据表

按国家分组聚合Pandas DataFrame的众数

解决步骤

  • 构造示例DataFrame(匹配你提供的原始数据)
import pandas as pd

data = {
    'country': ['india', 'india', 'india', 'india', 'india', 'india',
                'pakistan', 'Pakistan', 'pakistan',
                'srilanka', 'srilanka', 'srilanka', 'srilanka', 'srilanka', 'srilanka'],
    'scores': [11, 12, 12, 12, 10, 12, 10, 14, 14, 23, 21, 21, 23, 23, 23],
    'attempts': [6, 3, 3, 7, 3, 3, 4, 4, 5, 5, 5, 6, 5, 6, 5]
}
df = pd.DataFrame(data)
  • 统一国家名称的大小写
    原始数据中country列存在大小写不一致的情况(如pakistan和Pakistan),会导致分组错误,先统一格式:
df['country'] = df['country'].str.title()
  • 按国家分组并聚合众数
    通过groupby分组后,用自定义聚合函数提取每列的众数(mode()返回众数序列,这里每组众数唯一,直接取第一个元素即可):
result_df = df.groupby('country', as_index=False).agg(lambda x: x.mode()[0])

输出结果

执行上述代码后,打印result_df会得到期望的结果:

print(result_df)

输出:

country  scores  attempts
0     India      12         3
1  Pakistan      14         4
2   Srilanka      23         5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:55:21