使用Pandas订购的最昂贵物品的数量是多少

使用Pandas订购的最昂贵物品的数量是多少,pandas,Pandas,我的DF是升序=False在下面 chipo\u name\u price\u desc item_name item_price 2624 Steak Salad Bowl 9.39 4419 Steak Salad Bowl 9.39 4036 Steak Salad Bowl 9.39 1825 Barbacoa Salad Bowl 9.31 3115 Carnitas Salad Bowl 9.19 5000 M

我的DF是
升序=False
在下面

chipo\u name\u price\u desc

        item_name   item_price
2624    Steak Salad Bowl    9.39
4419    Steak Salad Bowl    9.39
4036    Steak Salad Bowl    9.39
1825    Barbacoa Salad Bowl 9.31
3115    Carnitas Salad Bowl 9.19
5000    Meat Salad Bowl     9.39
订购的最贵商品的数量是多少?
chipo_name_price_desc.loc[chipo_name_price_desc['item_name']=='牛排沙拉碗].count()

预期结果: 牛排沙拉碗3 肉类沙拉碗1

还有比这更好的方法吗?

使用:

使用
Series.max
Series.shape
不使用
排序
我们可以获得
项目的
最大
价格
,然后通过
系列获得数量。形状

df[df['item_price'] == df['item_price'].max()].shape[0]

#Out
3

排序之后使用
GroupBy
或者,如果您使用排序,我们可以使用
GroupBy
获取第一个组,并检查大小:

grps = [grp for _, grp in df.groupby('item_name', sort=False)]
print(grps[0].shape[0])

#Out
3
不是很一般,但是如果您想在groupby之后获得某个组,请使用
groupby.get_group
by index name:

df.groupby('item_name').get_group('Steak Salad Bowl').shape[0]

#Out
3

只需再查询一次,如果有两个商品名称的商品价格相同,那么需要做什么。在输出中有item_name,item_price必须显示为2个item扫描您是否编辑示例数据以显示此问题@A添加了样本数据并预期输出
grps = [grp for _, grp in df.groupby('item_name', sort=False)]
print(grps[0].shape[0])

#Out
3
df.groupby('item_name').get_group('Steak Salad Bowl').shape[0]

#Out
3