首页 > 解决方案 > 如何在数据框函数的不同列上同时使用 sum 和 count 函数?

问题描述

我的数据框如下:

Advertiser      Product             Price
Company1        A                   10
Company1        A                   10
Company1        B                   8
Company2        C                   5
Company3        D                   3

我目前的功能是:

top_5_products = df.groupby(['Advertiser'])['Product'].value_counts(ascending = False).head(5)

它输出以下内容:

Advertiser      Product
Company 1       A   2
                B   1
Company 2       C   1
Company 3       D   1

修改我的函数以给出价格总和的最佳方法是什么?例子:

Advertiser      Product     Total Price
Company 1       A   2       20
                B   1       8
Company 2       C   1       5
Company 3       D   1       3

我查看了 .agg 方法,但缺少使用不同列的示例。(我也不确定这是否是最好的方法)谢谢!

编辑***

df.groupby(['Advertiser', 'Product']).agg({'Product': 'count', 'Price': 'sum'}).head(5)

不起作用,因为它不再排序...

标签: pythonpandasdataframe

解决方案


groupby 与agg

df.groupby(['Advertiser', 'Product']).agg({'Product': 'count', 'Price': 'sum'})

推荐阅读