gpt4 book ai didi

python - 数据框按最大值排序并显示行名

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

我有这样的数据框

Name    Shop   Sales
a First 10
c Second 5
b First 8
d Second 4
e Third 30
g First 11

我想从“名称”列中获取在“销售额”列中具有最高值的值,按“商店”分组并排序,以便获得最高值“销售额”。所以实际上我想返回这个:

Third  e  30
First g 11
Second c 5

我设法做到了:

grouped=df.groupby(['Shop'], sort=False)['Sales'].max()
grouped.sort_index(ascending=False)

产生:

Third   30
First 11
Second 5

但我不确定如何访问它的相应名称。有什么想法吗?

最佳答案

您可以使用 DataFrameGroupBy.idxmax对于 Salesmax 值的索引,然后按 loc 和最后一个 sort_values 选择:

print (df.groupby('Shop')['Sales'].idxmax())

Shop
First 5
Second 1
Third 4
Name: Sales, dtype: int64

print (df.loc[df.groupby('Shop')['Sales'].idxmax()].sort_values('Sales', ascending=False))
Name Shop Sales
4 e Third 30
5 g First 11
1 c Second 5

关于python - 数据框按最大值排序并显示行名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875659/

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