2017-07-27 63 views
1

我有以下的数据帧计算百分添加到现有的数据帧

univ date  ms 
A  11/01/2007 0.2 
A  11/02/2007 0.3 
B  11/01/2007 0.4 
B  11/01/2007 0.5 

我所试图做的是通过大学来计算百分位,然后添加到现有的数据帧由值各大学作为一个额外的列ms_perc_rank

我能够做这个

df.groupby('univ')['ms'].quantile(0.2) 

回答

1

一般计算由大学百分位,使用transform分配groupby个结果到原始数据帧:

df['ms_perc_rank'] = df.groupby('univ')['ms'].transform('quantile', 0.2) 

输出结果:

univ  date ms ms_perc_rank 
0 A 11/01/2007 0.2   0.22 
1 A 11/02/2007 0.3   0.22 
2 B 11/01/2007 0.4   0.42 
3 B 11/01/2007 0.5   0.42