gpt4 book ai didi

python pandas - 在运行 idxmax/argmax 后获取列值

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

我正在尝试通过一些数据找出哪一类产品的收入最高。

我可以通过运行获得收入最高的类别的实际总收入:

max_revenue_by_cat = summer_transactions.groupby('item_category_id')['total_sales'].sum().max()

但是我如何才能获得最大收入所属的类别 ID?即 total_sales

数量最多的 category_id

最佳答案

使用set_index + sum(level=0) + sort_values + iloc 索引第一项。

df

item_category_id total_sales
0 1 100
1 1 10
2 0 200
3 2 20
4 1 300
5 0 100
6 1 30
7 2 400

r = df.set_index('item_category_id')\
.total_sales.sum(level=0)\
.sort_values(ascending=False)\
.iloc[[0]]

item_category_id
1 440
Name: total_sales, dtype: int64

如果你想把它作为一个迷你数据框,在结果上调用 reset_index -

r.reset_index()

item_category_id total_sales
0 1 440

详情

df.set_index('item_category_id').total_sales.sum(level=0)

item_category_id
1 440
0 300
2 420
Name: total_sales, dtype: int64

这里,总和最大的类别是1。通常,对于少量组,sort_values 调用花费的时间可以忽略不计,因此这应该是非常高效的。

关于python pandas - 在运行 idxmax/argmax 后获取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47870988/

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