【发布时间】:2017-12-30 05:30:44
【问题描述】:
假设我计算了在特定时间段内人们 (id) 吃了多少橙子 (Orange) 和苹果 (Apple)。我也知道他们是年轻还是年老(group)。 pandas 数据框可能如下所示:
df = pd.DataFrame({'id' : ['1','2','3','7'],
'group' : ['Young', 'Young', 'Old', 'Old'],
'Apple' : [7,2,5,4],
'Orange' : [3,6,4,4],
})
我们可以使用groupby() 轻松计算均值。例如:
df.Apple.groupby(df.group).mean()
输出
Old 4.5
Young 4.5
但是,假设我想知道每个人消耗的苹果和橙子的数量与群体平均值的差异有多少?
也就是说,输出应该是
df = pd.DataFrame({'id' : ['1','2','3','7'],
'group' : ['Young', 'Young', 'Old', 'Old'],
'Apple' : [7,2,5,4],
'Orange' : [3,6,4,4],
'Apple Difference' : [2.5, -2.5, 0.5, -0.5],
})
有没有办法用 pandas/numpy 做到这一点?抱歉,洛基问题最好/R
【问题讨论】:
标签: python-3.x pandas mean difference pandas-groupby