Python中如何按国家列分组汇总DataFrame生成总计行?
问题
我有一个每月更新的DataFrame,希望将每个国家的所有地区信息合并为一行总计(比如把阿尔巴尼亚的所有地区数据汇总成一行),示例格式如下:
**ORIGINATING COUNTRY Calls Made Actual Qty Billable Qty. Cost (€)** Albania 10 190 600 7 Zambia total total total ...
我尝试过使用groupby()和sum()方法,但没能成功实现。
解决方案
直接按国家分组对数值列求和即可,以下是具体步骤:
数据预处理(排查失败原因)
先解决可能导致groupby+sum失效的问题:import pandas as pd # 去除国家列首尾的多余空格(避免因格式不一致分组失败) df['ORIGINATING COUNTRY'] = df['ORIGINATING COUNTRY'].str.strip() # 将需要汇总的列转为数值类型(处理可能存为字符串的数值) numeric_cols = ['Calls Made', 'Actual Qty', 'Billable Qty.', 'Cost (€)'] df[numeric_cols] = df[numeric_cols].apply(pd.to_numeric, errors='coerce')分组生成汇总表
按国家分组后对数值列求和,重置索引得到每行对应一个国家的结构:summary_df = df.groupby('ORIGINATING COUNTRY')[numeric_cols].sum().reset_index()查看结果
运行后summary_df就是你需要的国家级汇总表,直接打印或导出就能快速查看每月数据概览。
内容的提问来源于stack exchange,提问作者Monsson
相关产品推荐
相关产品推荐

