首页 > 解决方案 > 查找每个类别的最大值的名称

问题描述

我有一个 groupby 对象,它显示了不同汽车品牌的品牌总价格和状态:

grouped_a = cars_data.groupby(['brand','state']) 
grouped_a['price'].sum()

我可以使用什么函数返回与每个州最高总价相关的品牌?我试过循环遍历 groupby 对象,但它不起作用。

标签: pythonpandasjupyter-notebook

解决方案


idxmax()为您提供具有最大值的行索引。

>>> cars_data
   price      state brand
0     10  emergency    on
1     20  emergency   ing
2     15     trance    on
3     12     trance   ing
>>> max_price_rows = cars_data.groupby(['state'])['price'].idxmax()
>>> max_price_rows
state
emergency    1
trance       2
Name: price, dtype: int64

所以第 1 行和第 2 行,即价格2015

如果您想要每个状态的最大值,则将该结果传递给.loc[]

>>> cars_data.loc[max_price_rows]
   price      state brand
1     20  emergency   ing
2     15     trance    on

推荐阅读