Skip to main content
 首页 » 编程设计

python之计算滚动窗口中第一个值和最后一个值之间的差异

2025年05月04日14jirigala

我在索引为日期时间形式的单列数据框上使用 Pandas 滚动窗口工具。

我想为每个窗口计算所述窗口的第一个值和最后一个值之间的差值。给出 lambda 函数时如何引用相对索引? (在下面的括号内)

df2 = df.rolling('3s').apply(...) 

请您参考如下方法:

IIUC:

In [93]: df = pd.DataFrame(np.random.randint(10,size=(9, 3))) 
 
In [94]: df 
Out[94]: 
   0  1  2 
0  7  4  5 
1  9  9  3 
2  1  7  6 
3  0  9  2 
4  2  3  7 
5  6  7  1 
6  1  0  1 
7  8  4  7 
8  0  0  9 
 
In [95]: df.rolling(window=3).apply(lambda x: x[0]-x[-1]) 
Out[95]: 
     0    1    2 
0  NaN  NaN  NaN 
1  NaN  NaN  NaN 
2  6.0 -3.0 -1.0 
3  9.0  0.0  1.0 
4 -1.0  4.0 -1.0 
5 -6.0  2.0  1.0 
6  1.0  3.0  6.0 
7 -2.0  3.0 -6.0 
8  1.0  0.0 -8.0