首页 > 解决方案 > Groupby 和 Sum 在单列上并找到最大值

问题描述

我正在研究这样的df:

InvoiceNo StockCode              Description             Quantity  InvoiceDate         UnitPrice  CustomerID
536365    85123A                       WHITE T-LIGHT          6   2010-12-01 08:26:00       2.55     17850.0
536365     71053                  WHITE METAL LANTERN         6   2010-12-01 08:26:00       3.39     17850.0
536365    84406B                          COAT HANGER         8   2010-12-01 08:26:00       4.73     17850.0
536368    84029G                     HOT WATER BOTTLE         6   2010-12-01 09:41:00       9.11     12391.0
...

我需要找到销量最多的 StockCode。我尝试了以下代码:

clean_data.groupby(['StockCode']).sum().sort_values('Quantity', ascending=False)

但这也给了我其他列的总和,这是我不想要的。我也尝试使用.idxmax()前面的语句找到最大值,但我认为答案不准确。

我还需要找到每笔交易出售的独特商品的数量。因此,每个唯一 (InvoiceNo, CustomerID) 对的行数,并且不知道如何从这个开始。一些见解将不胜感激。

提前致谢!

标签: pandaspandas-groupby

解决方案


对于第一部分,你可以试试这个 -

clean_data.groupby(['StockCode'])['Quantity'].sum().idxmax()

对于第二部分,试试这个 -

clean_data.groupby(['InvoiceNo', 'CustomerID'])['StockCode'].nunique()

推荐阅读