为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:按条件分组

Pandas:按条件分组

噜噜哒 2022-01-05 19:38:57
我必须对不包含任何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
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

首先,我们可以选择相关行,然后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']


查看完整回答
反对 回复 2022-01-05
?
FFIVE

TA贡献1797条经验 获得超6个赞

您可以通过以下方式进行分组,然后进行进一步的操作:

df[df.SellCategory != 'Small-Seller'].groupby('InvoiceNo')


查看完整回答
反对 回复 2022-01-05
?
倚天杖

TA贡献1828条经验 获得超3个赞

df_pivot=df.pivot_table(index='InvoiceNo',columns='SellCategory',values='Revenue',aggfunc='sum').reset_index()


查看完整回答
反对 回复 2022-01-05
  • 3 回答
  • 0 关注
  • 271 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信