如何在我的数据框架函数的不同列上一起使用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)

不工作,因为它不再排序…

groupby with agg

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

有人评论了这个答案,但很快就消失了。谢天谢地,我看到了它,它起作用了。谢谢你!

下面的代码可以工作:

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

EDIT***这不起作用,因为它不再排序。

最新更新