尝试使用pandas进行分组和订购

时间:2017-11-30 17:34:46

标签: python pandas

假设我有一个这样的表:

CustomerID | Customer Name | Category | Price
A1           Name1           Cat1       10
A2           Name2           Cat2       20
B1           Name3           Cat1       40
A1           Name1           Cat2       50
A2           Name2           Cat2       5

我想根据每个客户的CustomerID和价格总和对此数据框进行分组和排序,因为每个组将按类别进行分组和排序,如下所示:

CustomerID | Customer Name | Category | Price |
       A1          Name1          Cat2      50
                                  Cat1      10
       B1          Name2          Cat1      40
       A2          Name2          Cat2      25


df.groupby(["Customer ID", "Customer Name", "Category"]).apply(lambda x: x['PRICE'].sum()).reset_index(name="Sum").sort_values(by="Customer ID",ascending=False)

我写的这段代码不起作用。

1 个答案:

答案 0 :(得分:1)

您应该能够简单地使用sum()方法而不是使用lambda函数 -

df.groupby(["Customer ID", "Customer Name", "Category"]).sum().reset_index().sort_values(by="Customer ID",ascending=False)

此外,每次执行一个操作的每个步骤并确保您的结果是您所期望的是解决此问题的好方法。

相关问题