简体   繁体   English

根据数据框中的大小组计算百分比值 - 熊猫

[英]calculate percentage values depending on size group in dataframe - pandas

I have a dataframe as below:我有一个如下的数据框:

idx col1 col2 col3     
0   1.1    A  100    
1   1.1    A  100     
2   1.1    A  100  
3   2.6    B  100      
4   2.5    B  100        
5   3.4    B  100   
6   2.6    B  100    

I want to update col3 with percentage values depending on the group size of col1 , col2 (two columns ie., for each row having 1.1,A - col3 value should have 33.33 )我想根据col1col2的组大小更新col3的百分比值(两列,即对于具有 1.1 的每一行,A - col3 值应为33.33

Desired output:期望的输出:

idx col1 col2 col3 
0 1.1 A 33.33
1 1.1 A 33.33 
2 1.1 A 33.33
3 2.6 B 50
4 2.5 B 100
5 3.4 B 100 
6 2.6 B 50 

I think you need groupby with transform size :我认为您需要具有transform size groupby

df['col3'] = 100 / df.groupby(['col1', 'col2'])['col3'].transform('size')
print df
     col1 col2        col3
idx                       
0     1.1    A   33.333333
1     1.1    A   33.333333
2     1.1    A   33.333333
3     2.6    B   50.000000
4     2.5    B  100.000000
5     3.4    B  100.000000
6     2.6    B   50.000000

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM