gpt4 book ai didi

python - 有没有办法通过添加附加列来取消分组数据框

转载 作者:行者123 更新时间:2023-11-30 08:51:02 25 4
gpt4 key购买 nike

假设我们采用 pandas 数据框...

    item  MRP     sold
0 A 10 10
1 A 36 4
2 B 32 6
3 A 26 7
4 B 30 9

然后执行groupby('item').mean()

变成了

   item  MRP     sold
0 A 24 7
1 B 31 7.5

有没有办法保留所有唯一项目的 MRP 平均值,并创建另一列,在取消分组时包含这些值。

基本上我想要的是

    item  MRP     sold  Mean_MRP
0 A 10 10 24
1 A 36 4 24
2 B 32 6 31
3 A 26 7 24
4 B 30 9 31

有很多项目,所以我需要一种更快且优化的方法来执行此操作

最佳答案

使用Transform功能:

df = (df
.assign(Mean_MRP = lambda x:x.groupby('item')['MRP']
.transform('mean')))

df


item MRP sold Mean_MRP
0 A 10 10 24
1 A 36 4 24
2 B 32 6 31
3 A 26 7 24
4 B 30 9 31

您还可以使用pyjanitor模块,这使得代码更简洁:

import janitor

df.groupby_agg(by='item',
agg='mean',
agg_column_name="MRP",
new_column_name='Mean_MRP')

关于python - 有没有办法通过添加附加列来取消分组数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59816930/

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