[英]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
)我想根据col1
、 col2
的组大小更新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.