繁体   English   中英

添加一个新列,其中值总和除以 python 中组内的唯一值

[英]Add a new column with sum of values divided by unique value within groups in python

我有一个 dataframe 例如::

Group COL1 COL2 
G1    30   500
G1    21   500 
G1    43   500 
G2    89   677
G2    78   900 
G3    32   322
G3    90   200 

我想添加一个名为mean_group的新列,在其中计算每个Group的总和COL1 / COL2的唯一值。例如, (30+21+43)/500 = 0.188

I should then get:  
Group COL1 COL2 mean_group
G1    30   500  0.188
G1    21   500  0.188
G1    43   500  0.188
G2    89   677  0.2466765
G2    78   677  0.2466765
G3    32   322  0.09937888

做这个

df['mean_group']=df.groupby('Group')['COL1'].transform('sum')/df['COL2']

output:

  Group  COL1  COL2  mean_group
0    G1    30   500    0.188000
1    G1    21   500    0.188000
2    G1    43   500    0.188000
3    G2    89   677    0.246677
4    G2    78   900    0.185556
5    G3    32   322    0.378882
6    G3    90   200    0.610000

利用:

df['mean_group'] = df.groupby('Group')['COL1'].transform('mean')/df['COL2']

暂无
暂无

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

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