pandas 如何在Python中计算groupby中的计数和百分比
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/39893148/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 02:08:55 来源:igfitidea点击:
How to calculate count and percentage in groupby in Python
提问by Neil
I have following output after grouping by
分组后我有以下输出
Publisher.groupby('Category')['Title'].count()
Category
Coding 5
Hacking 7
Java 1
JavaScript 5
LEGO 43
Linux 7
Networking 5
Others 123
Python 8
R 2
Ruby 4
Scripting 4
Statistics 2
Web 3
In the above output I want the percentage also i.e for the first row 5*100/219
and so on. I am doing following
在上面的输出中,我也想要百分比,即第一行5*100/219
等等。我正在做以下
Publisher.groupby('Category')['Title'].agg({'Count':'count','Percentage':lambda x:x/x.sum()})
But it gives me an error. Please help
但它给了我一个错误。请帮忙
回答by jezrael
I think you can use:
我认为你可以使用:
P = Publisher.groupby('Category')['Title'].count().reset_index()
P['Percentage'] = 100 * P['Title'] / P['Title'].sum()
Sample:
样本:
Publisher = pd.DataFrame({'Category':['a','a','s'],
'Title':[4,5,6]})
print (Publisher)
Category Title
0 a 4
1 a 5
2 s 6
P = Publisher.groupby('Category')['Title'].count().reset_index()
P['Percentage'] = 100 * P['Title'] / P['Title'].sum()
print (P)
Category Title Percentage
0 a 2 66.666667
1 s 1 33.333333