我想编写一个roll函数,以便获得给定行之前给定点数的斜率。
数据帧有几列,其中一列是时间变量。 所以基本上,我希望能够计算任何列相对于时间列的移动斜率
我已经使用for循环完成了此操作,但是正如您将想象的那样,这是无效的。
我写了将应用于滚动的斜率函数。它使用sklearn.linear_model
The required permissions are prefilled for Key permissions and Secret permissions
例如,我有以下数据框:
from sklearn.linear_model import LinearRegression
def slope(x,y):
x=x.values.reshape(-1,1)
y=y.values.reshape(-1,1)
regressor=LinearRegression()
regressor.fit(x,y)
return regressor.coef_[0][0]
因此,目标是编写一个函数来获得滚动窗口4的斜率,从而得出以下结果。
i time var_A var_B
0 0.1 0.327 1.080
1 0.2 0.618 1.275
2 0.3 0.841 1.478
3 0.4 0.972 1.562
4 0.5 0.995 1.443
5 0.6 0.909 1.119
6 0.7 0.723 0.677
7 0.8 0.457 0.264
8 0.9 0.141 0.025
9 1 -0.191 0.045
10 1.1 -0.501 0.319
希望这很有道理!