gpt4 book ai didi

python - Pandas DataFrame Groupby 如何将组作为列表获取并获得特定列的平均值

转载 作者:行者123 更新时间:2023-12-04 13:29:04 27 4
gpt4 key购买 nike

我有一个数据框 df

p    m    r
p1 m1 120
p1 m2 34
p1 m3 56
p2 m4 54
p2 m5 58
我需要对 p 上的数据进行分组并获得 r 的平均值,输出应该是这样的:
p      m           r
p1 [m1,m2,m3] 70
p2 [m4,m5] 56

最佳答案

您可以使用 groupbyagg :

>>> df.groupby('p').agg({'m': [list], 'r': ['mean']}).droplevel(1, axis=1) 
m r
p
p1 [m1, m2, m3] 70
p2 [m4, m5] 56
或者,
>>> df.groupby('p').agg({'m': [list], 'r': ['mean']}).droplevel(1, axis=1).reset_index()

p m r
0 p1 [m1, m2, m3] 70
1 p2 [m4, m5] 56
或者,
>>> df.groupby('p', as_index=False).agg(m=('m', list), r=('r','mean'))
p m r
0 p1 [m1, m2, m3] 70
1 p2 [m4, m5] 56

关于python - Pandas DataFrame Groupby 如何将组作为列表获取并获得特定列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66301106/

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