Python 如何在数据框函数的不同列上同时使用sum和count函数?
我的数据框如下所示:Python 如何在数据框函数的不同列上同时使用sum和count函数?,python,pandas,dataframe,Python,Pandas,Dataframe,我的数据框如下所示: Advertiser Product Price Company1 A 10 Company1 A 10 Company1 B 8 Company2 C 5 Company3 D 3 Adve
Advertiser Product Price
Company1 A 10
Company1 A 10
Company1 B 8
Company2 C 5
Company3 D 3
Advertiser Product
Company 1 A 2
B 1
Company 2 C 1
Company 3 D 1
我目前的职能是:
top_5_products = df.groupby(['Advertiser'])['Product'].value_counts(ascending = False).head(5)
它的输出如下:
Advertiser Product Price
Company1 A 10
Company1 A 10
Company1 B 8
Company2 C 5
Company3 D 3
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
群比
有人对答案发表了评论,但很快就消失了。谢天谢地,我看到了它,它起作用了。谢谢大家! 以下代码起作用:
df.groupby(['Advertiser','Product']).agg({'Product': 'count', 'Price': 'sum'}).head(5)
编辑***这不起作用,因为它不再排序。有人对答案发表了评论,但很快就消失了。谢天谢地,我看到了它,它起作用了。谢谢大家! 以下代码起作用:
df.groupby(['Advertiser','Product']).agg({'Product': 'count', 'Price': 'sum'}).head(5)
编辑***这不起作用,因为它不再排序。所以,您希望所有这些都在一行中吗?不,就像我的输出示例一样。作为一个数据帧对象。我的意思是,如果你想在同一行代码上有groupby,sum等等。那么,你想把所有这些都放在一行吗?不,就像我的输出示例。作为一个数据帧对象。我的意思是,如果你想在同一行代码上,有groupby,sum等等。好吧,他再次回答了,所以你可以删除你的答案,并接受他的答案为正确。好吧,他再次回答了,所以你可以删除你的答案,并接受他的答案为正确。谢谢你的答案,但现在它没有排序。我该如何按计数排序?@joshgallantt您可以将
.sort\u值(按class='Product')
添加到末尾谢谢您的回答,不过现在不会排序。如何按计数排序?@joshgallantt您可以在末尾添加.sort\u值(按class='Product')