我的数据帧如下:
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***这不起作用,因为它不再排序。