Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.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_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 数据帧中的累积或滚动产品

Python 数据帧中的累积或滚动产品,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,嗨,我有一个带有列的dataframe,我只想添加另一个列,它接受原始列的滚动乘积。我在谷歌上搜索了一段时间,但这似乎是一个基本的功能——不确定我是否遗漏了什么。Id希望获得列B作为输出 A B 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 我基本上是在寻找这样的东西,如果它存在的话: 数据['B']=数据['A'].滚动(窗口=1).产品() 我在早些时候发现了这篇文章,但它似乎使用的是rolling_apply,不再处于活动状态?:

嗨,我有一个带有列的dataframe,我只想添加另一个列,它接受原始列的滚动乘积。我在谷歌上搜索了一段时间,但这似乎是一个基本的功能——不确定我是否遗漏了什么。Id希望获得列B作为输出

A   B
1   1
2   2
3   6
4   24
5   120
6   720
7   5040
我基本上是在寻找这样的东西,如果它存在的话:

数据['B']=数据['A'].滚动(窗口=1).产品()

我在早些时候发现了这篇文章,但它似乎使用的是rolling_apply,不再处于活动状态?:

我尝试过使用类似的解决方案,但似乎不起作用

dftest= pd.DataFrame([1,2,3,4,5,6,7],columns=['A'])
dftest['cum']=dftest['A'].rolling(1).apply(lambda x:x.prod())
输出:

   A  cumprod
0  1  1.0
1  2  2.0
2  3  3.0
3  4  4.0
4  5  5.0
5  6  6.0
6  7  7.0
好像你想要


也可以

df.v.expanding().agg(lambda a:a.prod())

0      1.0
1      2.0
2      6.0
3     24.0
4    120.0
5    720.0
好像你想要


也可以

df.v.expanding().agg(lambda a:a.prod())

0      1.0
1      2.0
2      6.0
3     24.0
4    120.0
5    720.0

我仔细阅读了以前的文章。我能找到的唯一有效的方法是在5年前被问到并使用了rolling_apply,它似乎不再是一个选项你说的“rolling product”,但在我看来,它更像是一个扩展产品。一个窗口为1的滚动产品就是这个系列本身,不是吗?复制品的答案已经有一段时间没有出现在《熊猫》中了,虽然这可能仍然是一个复制品,但必须有一个更好的版本target@DSM事实上,你是对的,我需要一个扩展产品。我仔细阅读了以前的文章。我能找到的唯一有效的方法是在5年前被问到并使用了rolling_apply,它似乎不再是一个选项你说的“rolling product”,但在我看来,它更像是一个扩展产品。一个窗口为1的滚动产品就是这个系列本身,不是吗?复制品的答案已经有一段时间没有出现在《熊猫》中了,虽然这可能仍然是一个复制品,但必须有一个更好的版本target@DSM事实上你是对的,我需要一个扩展产品。那太完美了+回答得好。特别是在扩展方面。那太完美了+回答得好。特别是在扩张方面。