乘法百分比的计算

扎眼的阳光 python 196

原文标题Calculation of multiplicative percentages

我正在尝试计算百分比。 per、per1 和 per1-per 是百分比

date      per    per1   per1-per
1/1/2021   0      0        0
2/1/2021   0      0        0
3/1/2021   2      3        1
4/1/2021   0      2        2
5/1/2021   5      1       -4
6/1/2021   0      0        0

我想要的输出是

date      per    per1   per1-per  per_of_per
1/1/2021   0      0        0          0
2/1/2021   0      0        0          0
3/1/2021   2      3        1          1 
4/1/2021   0      2        2          3.02
5/1/2021   5      1       -4         -1.10
6/1/2021   0      0        0         -1.10

per_of_per 的计算方式是:

  • 第一次,per_of_per[0] = (1+per1-per[0])-1
  • 第二次,per_of_per[1] = (1+per1-per[0])*(1+per1-per[1])-1
  • 第三次,per_of_per[2] = (1+per1-per[0])*(1+per1-per[1])*(1+per1-per[2])-1 等等..

原文链接:https://stackoverflow.com//questions/71599689/calculation-of-multiplicative-percentages

回复

我来回复
  • mozway的头像
    mozway 评论

    使用cumprod将百分比转换为int后,加1,然后执行相反的过程以返回百分比:

    df['pre_per'] = df['per1-per'].div(100).add(1).cumprod().sub(1).mul(100)
    

    输出:

           date  per  per1  per1-per  pre_per
    0  1/1/2021    0     0         0   0.0000
    1  2/1/2021    0     0         0   0.0000
    2  3/1/2021    2     3         1   1.0000
    3  4/1/2021    0     2         2   3.0200
    4  5/1/2021    5     1        -4  -1.1008
    5  6/1/2021    0     0         0  -1.1008
    
    2年前 0条评论