gpt4 book ai didi

python-3.x - 与 Pandas 数据框中的分组平均值的区别?

转载 作者:行者123 更新时间:2023-12-03 21:18:13 24 4
gpt4 key购买 nike

让我们假设我计算在特定时间段内人们 ( Orange ) 吃了多少橙子 ( Apple ) 和苹果 ( id ) 。我也知道他们是年轻还是年老( 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

最佳答案

您需要 transform meanlengthdf减去 sub :

print (df.groupby('group')['Apple'].transform('mean'))
0 4.5
1 4.5
2 4.5
3 4.5
Name: Apple, dtype: float64

df = pd.DataFrame({'id' : ['1','2','3','7'],
'group' : ['Young', 'Young', 'Old', 'Old'],
'Apple' : [7,2,5,4],
'Orange' : [3,6,4,4],
})
df['Apple Difference'] = df['Apple'].sub(df.groupby('group')['Apple'].transform('mean'))
print (df)
Apple Orange group id Apple Difference
0 7 3 Young 1 2.5
1 2 6 Young 2 -2.5
2 5 4 Old 3 0.5
3 4 4 Old 7 -0.5

关于python-3.x - 与 Pandas 数据框中的分组平均值的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45283811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com