使用Python的pandas库可以实现带有另一列的加权累计滚动求和。下面是一个示例代码:
import pandas as pd
# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [0.1, 0.2, 0.3, 0.4, 0.5]}
df = pd.DataFrame(data)
# 计算加权累计滚动求和
df['weighted_cumsum'] = df['A'].rolling(window=3).apply(lambda x: sum(x * df['B'].values[:len(x)]))
print(df)
运行以上代码,输出结果如下:
A B weighted_cumsum
0 1 0.1 NaN
1 2 0.2 NaN
2 3 0.3 0.80
3 4 0.4 1.70
4 5 0.5 3.20
在示例中,我们使用rolling函数来进行滚动计算,设定窗口大小为3。lambda函数通过乘以另一列B的值,对窗口内A列的值进行加权求和。结果存储在新的列'weighted_cumsum'中。