有这样一个需求:在对列sum求和以后,需要将原始值附在其后。这样就需要进行多行合并了。
根据name分组后,求和,并增加一列显示原始值
# 定义函数,使用逗号将合并数据分开
>>> def joinValues(df):
return ','.join(df.astype('str'))
# 使用agg函数分别求和合并
>>> ds = df.groupby(by='name').agg({'C':['sum', joinValues]})
>>> ds
C
sum joinValues
name
lb 88 88
lc 91 45,23,23
# 重置index
>>> ds.reset_index()
name C
sum joinValues
0 lb 88 88
1 lc 91 45,23,23
#
ds.to_excel(r'D:/myExcel/res.xlsx')
结果如下:
哈哈,以上就基本上实现了结果。哈哈,欢迎关注python小工具。一起学习python和pandas。