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

时间:2016-05-12 20:37:18

标签: python pandas

我有一个数据框如下:

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    

我希望使用百分比值更新col3,具体取决于col1col2的组大小(两列,即。对于每行有1.1,A - col3值应该有33.33

期望的输出:

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 

1 个答案:

答案 0 :(得分:1)

我认为groupby transform需要size

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