Python 将滚动窗口与数组相乘(熊猫)
例如,我有一个数据帧df1,由5行和一个数组x组成:Python 将滚动窗口与数组相乘(熊猫),python,pandas,Python,Pandas,例如,我有一个数据帧df1,由5行和一个数组x组成: x=np.array([1, 2, 3, 4]) Timestamps A 01:00 1 02:00 2 03:00 3 04:00 4 05:00 5 我如何使用df1.rolling(4)对多个数组x进行运算,并获得每行中所有乘积的总和?滚动命令似乎没有乘法功能。我的预期产出: Timestamps A 01:00 NaN 02:00
x=np.array([1, 2, 3, 4])
Timestamps A
01:00 1
02:00 2
03:00 3
04:00 4
05:00 5
我如何使用df1.rolling(4)对多个数组x进行运算,并获得每行中所有乘积的总和?滚动命令似乎没有乘法功能。我的预期产出:
Timestamps A
01:00 NaN
02:00 NaN
03:00 NaN
04:00 1*1 + 2*2 + 3*3 + 4*4 = 30
05:00 2*1 + 3*2 + 4*3 + 5*4 = 40
非常感谢你的帮助 您可以将
np.dot
与滚动一起使用。要执行此操作,请应用
:
>>> df["rolled_A"] = df["A"].rolling(4).apply(np.dot, kwargs={"b": x})
>>> print(df)
Timestamps A rolled_A
0 01:00 1 NaN
1 02:00 2 NaN
2 03:00 3 NaN
3 04:00 4 30.0
4 05:00 5 40.0
您可以将
np.dot
与rolling一起使用。要执行此操作,请应用
:
>>> df["rolled_A"] = df["A"].rolling(4).apply(np.dot, kwargs={"b": x})
>>> print(df)
Timestamps A rolled_A
0 01:00 1 NaN
1 02:00 2 NaN
2 03:00 3 NaN
3 04:00 4 30.0
4 05:00 5 40.0