将一列值转换为指定的间隔,并在python中输出平均值的两列

时间:2018-02-07 01:18:35

标签: python pandas

我有三列,希望将第一列分为0.5%-1%,1%-5%,5%-10%,10%-15%的间隔,并输出两列平均值。

   loan_rate  wkly_rate   ret_fwd
0     0.0050   0.000096  0.003784
1     0.0075   0.000144  0.006989
2     0.0100   0.000192  0.007745
3     0.0125   0.000240  0.013878
4     0.0150   0.000288  0.002195
5     0.0175   0.000337 -0.007370
6     0.0200   0.000385 -0.019037 

我希望输出

loan_rate  wkly_rate  ret_fwd    
 0.5%-1%    0.000001    0.001                           
 1%-5%      0.000001    0.001                           
 5%-10%     0.000001    0.001                           
 10%-15%    0.000001    0.001

没有编写循环的任何有效方法?

1 个答案:

答案 0 :(得分:0)

使用pandas'ID + pd.cut -

groupby

df

   loan_rate  wkly_rate   ret_fwd
0     0.0050   0.000096  0.003784
1     0.0075   0.000144  0.006989
2     0.0100   0.000192  0.007745
3     0.0125   0.000240  0.013878
4     0.0150   0.000288  0.002195
5     0.0175   0.000337 -0.007370
6     0.0200   0.000385 -0.019037

bins=[0.5, 1, 5, 10, 15]
labels=['0.5%-1%', '1%-5%', '5%-10%', '10%-15%']