Pandas:按条件分组

我必须对不包含任何SmallSeller产品 (SellCategory)的交易 (InvoiceNo) 进行分组,但我不确定如何进行。


我最终必须比较Quantity*UnitPrice两种类型的交易(包含SmallSeller产品的交易与不包含任何SmallSeller产品的交易)产生的收入 ( )。


(这是我的数据示例)


    InvoiceNo   SellCategory    Revenue


      23        Medium-Seller     54

      23         Best-Seller     108

      23         Best-Seller      71

      24        Medium-Seller     43

      24         Small-Seller     18

      25         Best-Seller      89

      25         Small-Seller     23

      26        Medium-Seller     65

      26         Best-Seller      98

      26         Small-Seller     23

http://img3.mukewang.com/61d583680001b9fc13200625.jpg

噜噜哒
浏览 272回答 3
3回答

尚方宝剑之说

首先,我们可以选择相关行,然后Revenue使用 groupby on进行聚合InvoiceNo。最后,我们在最后连接两种数据帧并重命名列:df1 = pd.concat([df[df['SellCategory'] == 'Small-Seller'].groupby('InvoiceNo').sum(), df[df['SellCategory'] == 'Small-Seller'].groupby('InvoiceNo').sum()], 1)df1.columns = ['Revenue_Small_Seller', 'Revenue_without_Small_Seller']

FFIVE

您可以通过以下方式进行分组,然后进行进一步的操作:df[df.SellCategory != 'Small-Seller'].groupby('InvoiceNo')

倚天杖

df_pivot=df.pivot_table(index='InvoiceNo',columns='SellCategory',values='Revenue',aggfunc='sum').reset_index()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python