Python 在Pandas中复制Excel数组累积乘法

Python 在Pandas中复制Excel数组累积乘法,python,pandas,Python,Pandas,如果有一个月回报的时间序列可以追溯到36个月前。我需要每月将它们相乘,以获得3600万的复合回报。在excel中,我使用了一个数组函数,如=((PRODUCT(1+(H3:AQ3)/100))-1)*100,其中单元格是时间序列 在熊猫中,我看到cumprod是适用的,但我需要在随后的每个月添加1,这样我就不会得到非常小的数字。如何在python中实现这一点 返回从旧到新的示例DF: df=pd.DataFrame(data=[0.038, 0.041, 0.045, 0.051, 0.05,

如果有一个月回报的时间序列可以追溯到36个月前。我需要每月将它们相乘,以获得3600万的复合回报。在excel中,我使用了一个数组函数,如
=((PRODUCT(1+(H3:AQ3)/100))-1)*100
,其中单元格是时间序列

在熊猫中,我看到cumprod是适用的,但我需要在随后的每个月添加1,这样我就不会得到非常小的数字。如何在python中实现这一点

返回从旧到新的示例DF:

df=pd.DataFrame(data=[0.038,
0.041,
0.045,
0.051,
0.05,
0.058,
0.066,
0.061,
0.07,
0.075,
0.082,
0.084,
0.093,
0.072,
0.092,
0.096,
0.096,
0.11,
0.122,
0.114,
0.137,
0.292,
0.158,
0.163,
0.174,
0.175,
0.173,
0.186,
0.186,
0.201,
0.209,
0.189,
0.208,
0.201,
0.205,
0.194596400000013])

Pandas允许您仅使用+运算符向每个元素添加常量。所以

(df + 1).cumprod() - 1

应该可以得到您想要的。

只需沿列轴(
0
)使用
product
方法即可


啊。我知道Exel宏只会给你一个标量。cumprod方法将为您提供每个职位的累积产品列表。我也没有包括百分比到分数和分数到百分比的转换。所以,我正在批改姆萨诺的答案。
((df/100 + 1).product(axis=0) - 1) * 100