假设数据帧如下:
Name | Type | Year | Qty | Amount
Mike buy 2019 5 100
James return 2019 10 150
Mike return 2019 15 200
James buy 2019 20 250
我有兴趣将Amount
求Type
,然后Qty
求和而不考虑type
,例如:
Name | Year | buy | return | Qty
Mike 2019 100 200 20
James 2019 250 150 30
我怎样才能以最快的方式实现这一目标?
我尝试过:df=pd.pivot_table(df, values=['Amount,'Qty'], index=['Name','Type','Year'], columns=['Type'], aggfunc='sum').reset_index()
但是,这会通过buy
和return
聚合Qty
,而不是不考虑Type
Qty
求和。
分组不同,因此concat
两个groupby
:
pd.concat([df.groupby(['Name', 'Year', 'Type']).Amount.sum().unstack(-1),
df.groupby(['Name', 'Year',]).Qty.sum()],
axis=1)
buy return Qty
Name Year
James 2019 250 150 30
Mike 2019 100 200 20