【发布时间】:2022-01-23 17:37:19
【问题描述】:
我有一个 daframe,每年有三项表现。我想添加另一列,其中包含按列累积的产品。 x 的累积乘积为 0.42%。我尝试使用 pandas cumprod 或者 axis=0 和 1 但它给了我一个错误。 有办法做到这一点吗?
2016 2017 2018
2,00% -3,00% 1,50%
4,00% 2,00% -1,00%
-5,00% 7,00% -2,50%
2016 2017 2018 TOTAL CUMULATED
2,00% -3,00% 1,50% 0,42%
4,00% 2,00% -1,00% 5,02%
-5,00% 7,00% -2,50% -0,89%
这是我的代码,但不正确:
import pandas as pd
import numpy as np
data = [[0.02, -0.03, 1.50], [0.04, 0.02, -1.00], [-0.05, 0.07, -2.50]]
df = pd.DataFrame(data, columns=['2016', '2017', '2018'])
df['TOTAL CUMULATED'] = np.cumprod(1 + df) - 1
它给我:ValueError:错误的项目数通过 3,位置意味着 1
所以,代码不正确,因为它在数据框的末尾添加了一行,而是我想添加另一列与行的 cumprod
【问题讨论】:
-
你如何计算“总累计”? 2% -3% + 1.5% = 0.5% !为什么是 0.42%?
-
还显示您的代码并以文本格式提供示例数据(请删除屏幕截图)
-
...以及您遇到的确切错误。
-
0,42% 计算公式为:(1+2,00%)*(1-3,00%)*(1+1,50%)-1