【发布时间】:2018-04-06 21:45:25
【问题描述】:
假设我的数据如下所示:
date,name,id,dept,sale1,sale2,sale3,total_sale
1/1/17,John,50,Sales,50.0,60.0,70.0,180.0
1/1/17,Mike,21,Engg,43.0,55.0,2.0,100.0
1/1/17,Jane,99,Tech,90.0,80.0,70.0,240.0
1/2/17,John,50,Sales,60.0,70.0,80.0,210.0
1/2/17,Mike,21,Engg,53.0,65.0,12.0,130.0
1/2/17,Jane,99,Tech,100.0,90.0,80.0,270.0
1/3/17,John,50,Sales,40.0,50.0,60.0,150.0
1/3/17,Mike,21,Engg,53.0,55.0,12.0,120.0
1/3/17,Jane,99,Tech,80.0,70.0,60.0,210.0
我想要一个新列 average,这是每个 name,id,dept 元组的 total_sale 的平均值
我试过了
df.groupby(['name', 'id', 'dept'])['total_sale'].mean()
这确实返回了一个具有平均值的系列:
name id dept
Jane 99 Tech 240.000000
John 50 Sales 180.000000
Mike 21 Engg 116.666667
Name: total_sale, dtype: float64
但我将如何引用数据?该系列是形状 (3,) 的一维系列。理想情况下,我希望将其放回具有适当列的数据框中,以便我可以通过name/id/dept 正确引用。
【问题讨论】:
标签: python pandas dataframe pandas-groupby