让我们假设我计算在特定时间段内有多少橘子(Orange
)和苹果(Apple
)人(id
)吃。我也知道他们是年轻还是年老(group
)。熊猫数据框可能如下所示:
df = pd.DataFrame({'id' : ['1','2','3','7'],
'group' : ['Young', 'Young', 'Old', 'Old'],
'Apple' : [7,2,5,4],
'Orange' : [3,6,4,4],
})
我们可以使用groupby()
轻松计算均值。 E. g:
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做到这一点?对不起摇滚乐问题Best / R