gpt4 book ai didi

python - Pandas 如何在聚合另一列时按组大小排序

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:10 24 4
gpt4 key购买 nike

我有以下df,

id    amount
1 20
2 8
1 3
1 2
2 7

我想通过 id groupby df,并按组的大小对组进行排序,

 df.groupby('id').size().sort_values(ascending=False)

同时还汇总了每个组的数量以创建一个单独的列total

id    amount    total    size
1 20 25 3
1 3 25 3
1 2 25 3
2 8 15 2
2 7 15 2

最佳答案

您可以对列表使用 GroupBy + agg,然后是 pd.merge:

g = df.groupby('id')['amount'].agg(['size', 'sum'])

res = pd.merge(df, g, left_on='id', right_index=True)\
.sort_values('size', ascending=False)

print(res)

id amount size sum
0 1 20 3 25
2 1 3 3 25
3 1 2 3 25
1 2 8 2 15
4 2 7 2 15

关于python - Pandas 如何在聚合另一列时按组大小排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51786299/

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