我有一个数据框如下:

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

最佳答案

我认为您需要groupbytransform 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

关于python - 根据数据框中的大小组计算百分比值- Pandas ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37196973/

10-15 10:19