python - 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'))
解决方案
转换为.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
推荐阅读
- angular - 如何在同一组件上显示 2 个 ag-grid 网格
- android - 颤振资产图像在启动之前不会卸载?如何解决这个问题?
- c# - 需要为多个客户端配置 IIS。它们都将使用单一的代码库,但使用不同的应用程序池和数据库
- java - 执行 jcmd GC.class_stats 时会导致 STW 吗?
- java - 我如何创建抽象类的对象?
- r - 如何将宽格式存在/不存在数据转换为长格式?
- python - 没有同一张牌如何洗牌?
- database - Laravel belongsToMany 保存不尊重主键
- java - 我还应该如何调用反向函数?对 Rlist 执行反向时,输出仅显示一个链接
- html - CSS display inline 和 float 在包装器中不起作用