Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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,假设我有下面的数据框: index value 1 1 2 2 3 3 4 4 我想使用“apply”语句对前两行的每一行应用一个函数。例如,假设我想要多个当前行和前2行(如果存在)。(这可能是任何功能) 结果: index value result 1 1 nan 2 2 nan 3 3 6 4 4 24 谢谢。我想您有四排以上的

假设我有下面的数据框:

index  value 
 1       1
 2       2
 3       3
 4       4
我想使用“apply”语句对前两行的每一行应用一个函数。例如,假设我想要多个当前行和前2行(如果存在)。(这可能是任何功能)

结果:

index  value  result 
 1       1     nan 
 2       2     nan 
 3       3      6
 4       4      24

谢谢。

我想您有四排以上的吧。如果是这样,请每四行尝试
groupby
cumproduct
,选择
last 2
并将
加入原始数据框

df['value']=df.index.map(df.assign(result=df['value'].cumprod(0)).groupby(df.index//4).result.tail(2).to_dict())
如果只有四行,那么这应该是你的

让我们尝试组合
.cumprod()
.tail()

使用分配功能:

df = df.assign(result = lambda x: x['value'].cumprod().tail(len(df)-2))

您可以尝试使用
产品
滚动

df['result'] = df['value'].rolling(3).apply(lambda x: x.prod())
输出:

   index  value  result
0      1      1     NaN
1      2      2     NaN
2      3      3     6.0
3      4      4    24.0

您是否需要
df['value']*df['value'].shift()*df['value'].shift(2)
?请参阅下面我编辑的答案。很高兴能进一步帮助我,请告诉我
   index  value  result
0      1      1     NaN
1      2      2     NaN
2      3      3     6.0
3      4      4    24.0