乘法百分比的计算
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
等等..
使用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
我正在尝试计算百分比的百分比。 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
等等..
使用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