Pandas:按条件分组

2024-09-30 19:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须对不包含任何SmallSeller产品(SellCategory)的事务(InvoiceNo)进行分组,并且我不确定如何继续。你知道吗

最后,我要比较两种类型的交易(包含SmallSeller产品的交易和不包含任何SmallSeller产品的交易)产生的收入(Quantity*UnitPrice)。你知道吗

(这是我的数据示例)

    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

Screenshot of my data's table


Tags: 数据示例类型产品交易事务quantitysmall
3条回答

您可以按以下方式分组,然后继续执行进一步的操作:

df[df.SellCategory != 'Small-Seller'].groupby('InvoiceNo')
df_pivot=df.pivot_table(index='InvoiceNo',columns='SellCategory',values='Revenue',aggfunc='sum').reset_index()

首先,我们可以挑选相关的行,然后使用groupby在InvoiceNo上聚合Revenue。 最后,我们将两种数据帧连接在一起并重命名列:

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']

相关问题 更多 >