Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将滚动窗口与数组相乘(熊猫)_Python_Pandas - Fatal编程技术网

Python 将滚动窗口与数组相乘(熊猫)

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

例如,我有一个数据帧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       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