如何在pandas透视DataFrame时拼接字符串值并汇总数值字段?
解决方案
直接使用pandas的groupby+多列聚合即可实现需求,不需要手动遍历处理,代码简洁且性能足够应对5000行级别的数据量:
import pandas as pd # 按City分组,分别对两列做不同聚合 df_result = df.groupby('City', as_index=False).agg( Salesman=('Salesman', list), # 销售员列聚合为列表 Sales=('Sales', 'sum') # 销售额列求和 )
补充说明
- 如果你需要对同一个城市的重复销售员姓名去重,把聚合规则从
list替换为lambda x: list(x.unique())即可 - 你熟悉的
pivot_table也可以实现相同效果,写法如下:
df_result = pd.pivot_table( df, index='City', aggfunc={'Salesman': list, 'Sales': 'sum'} ).reset_index()
内容的提问来源于stack exchange,提问作者P E
相关产品推荐
相关产品推荐

