首页 > 解决方案 > python中pd groupby中的不同聚合

问题描述

我有一个这样的df,需要在groupby中执行多个聚合,包括连接行和对相同cols的不同操作

import pandas as pd
sample = pd.DataFrame({'group':['a']*3+['b']*6, 'time':[1,2,4,6,7,8,9,12,15],'type':['a','x','b','y','x','a','y','b','x']})
sample

这是我尝试过的,结果包含不需要的索引和\n。有没有不包括在内的好方法?

sample.groupby('group').agg(ts = ('time',lambda x: ''.join(str(x))), 
                         type_max = ('type','max'), type_count = ('type','count'))

在此处输入图像描述

标签: pythonpandas

解决方案


转换为.astype(str)

sample.groupby('group').agg(ts = ('time',lambda x: ''.join(x.astype(str))), 
                            type_max = ('type','max'), 
                            type_count = ('type','count'))

输出:

             ts type_max  type_count
group                               
a           124        x           3
b      67891215        y           6

推荐阅读