两个问题:
1. 如图数据,如何用pandas同时实现以下分类汇总:合并相同“名称”,“金额”求和,“利率”取均值,日期、类型、主体跟随“名称”合并。
尝试了一些办法,groupby似乎不能同时既求和又求均值,不能合并相同字符(只能排列在一起)
2.如何实现类似excel数据透视表的功能
##第一问,这样是不是比较清晰。 假设这里金额,利率都已经转成数值型了。后面几个因为都是一样的值,所以最大值或最小值都可以达到去重的目的
df2=df.groupby('名称').agg({'金额':'sum', '利率':'mean','日期':'max','类型':'max','主体':'max'}) #.reset_index(drop=True)
df2['名称']=df2.index
df2=df2.reset_index(drop=True)
import pandas as pd
pd . pivot_table ( df , index = [ "类型" ,"主体","名称" , "日期" ] ,
values = [ "金额" , "利率" ] ,
aggfunc = [ np . sum , np . mean ] , fill_value = 0 , margins = True )
##问题2,列是名词,行是金额,对利率求和
df3=pd.pivot_table(df,index=["名称"],values=["利率"],columns=["金额"],aggfunc=[np.sum])
结果是这样的,要想处理成常规数据框格式,可以像问题1一样重置列名和索引
excel里是这样的,
import numpy as np
加上这行