Python 2.7 Pandas-查找各组中值的百分比
我有一个csv文件,如下所示Python 2.7 Pandas-查找各组中值的百分比,python-2.7,pandas,pandas-groupby,Python 2.7,Pandas,Pandas Groupby,我有一个csv文件,如下所示 Beat,Hour,Month,Primary Type,COUNTER 111,10AM,Apr,ASSAULT,12 111,10AM,Apr,BATTERY,5 111,10AM,Apr,BURGLARY,1 111,10AM,Apr,CRIMINAL DAMAGE,4 111,10AM,Aug,MOTOR VEHICLE THEFT,2 111,10AM,Aug,NARCOTICS,1 111,10AM,Aug,OTHER OFFENSE,18 111,10
Beat,Hour,Month,Primary Type,COUNTER
111,10AM,Apr,ASSAULT,12
111,10AM,Apr,BATTERY,5
111,10AM,Apr,BURGLARY,1
111,10AM,Apr,CRIMINAL DAMAGE,4
111,10AM,Aug,MOTOR VEHICLE THEFT,2
111,10AM,Aug,NARCOTICS,1
111,10AM,Aug,OTHER OFFENSE,18
111,10AM,Aug,THEFT,38
现在,我想找到由前三列分组的每个主要类型的百分比。例如,对于节拍=111,小时=上午10点,月份=4月,%attack=12/(12+5+1+4)*100。有人能给你一个关于如何使用熊猫做这件事的线索吗?你可以使用
transform
sum
df['New']=df.COUNTER/df.groupby(['Beat','Hour','Month']).COUNTER.transform('sum')*100
df
Out[575]:
Beat Hour Month Primary Type COUNTER New
0 111 10AM Apr ASSAULT 12 54.545455
1 111 10AM Apr BATTERY 5 22.727273
2 111 10AM Apr BURGLARY 1 4.545455
3 111 10AM Apr CRIMINAL DAMAGE 4 18.181818
4 111 10AM Aug MOTOR VEHICLE THEFT 2 3.389831
5 111 10AM Aug NARCOTICS 1 1.694915
6 111 10AM Aug OTHER OFFENSE 18 30.508475
7 111 10AM Aug THEFT 38 64.406780
谢谢它帮助了@buddingengineer yw~:-)愉快的编码