我有一个dataframe与2列“日期”和“百分比_变化”。我需要不同时间窗口的百分比变化的乘积。例如,时间窗口= 2:2010年和2011年的产品(1.1 * 0.95); 2011年和2012年; 2019年和2020年。所以对于时间窗口=2,我将得到9个结果。
对于时间窗= 3:2010年、2011年、2012年产品(1.1 * 0.95 * 1.3); 2011年、2012年和2013年;……; 2018年、2019年和2020年。因此,对于时间窗口=3,我将得到8个结果。
对于时间窗= 9:2010年、2011年、2012年、2013年、2014年、……、2019年的产品(1.1 * 0.95 *... * 0.9); 2011,2012,2013,……,2020(0.95 * 1.3 …… 0.9)。因此,对于时间窗口=9,我将得到2个结果。
date percentage_change
2010-01-01 1.1
2011-01-01 0.95
2013-01-01 1.3
2014-01-01 1.2
2015-01-01 1.1
2016-01-01 0.8
2017-01-01 0.6
2018-01-01 1.1
2019-01-01 1.7
2020-01-01 0.9
1条答案
按热度按时间6qqygrtg1#
您可以使用
pd.rolling(window=WINDOW_SIZE)
设置窗口大小,然后应用乘法。下面是一个示例代码(我使用您的数据来生成它):
它获取窗口大小,然后应用
np.prod
。fillna(0)
是因为如果我们选择window_size=3,则前两个元素将具有NaN值。我希望这对你有帮助!