如何编写正确排序的查询

时间:2019-11-23 16:58:52

标签: python pandas

我在向熊猫写查询时遇到问题。我有一个数据框:gsub

任务是获取最昂贵产品的销售数量。 当我这样写查询时:

(item_name, order_id, quantity, item_price1)

它工作正常。但是,当我尝试使用 sort_values 这样的查询结果对查询结果进行排序以找到最昂贵的查询时:

df.groupby('item_name')['item_price1','quantity'].agg(['max','count']) 

它以错误结尾:

  

键错误“最大”

正确的做法是什么?

1 个答案:

答案 0 :(得分:0)

移动我的评论以回答:

当您执行以下操作时:

agg = df.groupby('item_name')['item_price1','quantity'].agg(['max','count']) 

您最终建立了一个多级列索引,在这种情况下(agg.columns)是:

MultiIndex([('item_price1',   'max'),
            ('item_price1', 'count'),
            (   'quantity',   'max'),
            (   'quantity', 'count')],
           )

然后将其用于排序,您需要使用特定级别,例如:

agg.sort_values(by=('item_price1', 'max'), ascending=False)

附带说明-您正在.head(10)处用于对数据进行完全排序后限制总输出,但是如果您的数据使用.nlargest可能会更好与总体相比,样本量较小,例如:

agg.nlargest(10, ('item_price1', 'max'))