自定义滚动使用两列应用python来计算移动斜率

时间:2019-07-03 02:06:27

标签: python pandas time-series rolling-computation

我想编写一个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

希望这很有道理!

0 个答案:

没有答案