Python滞后于Pysp的系列

2024-10-03 13:20:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在pyspark中修改以下Python代码:

from statsmodels.tsa.tsatools import lagmat

def lag_func(data,lag):
    lag = lag
    X = lagmat(data["diff"], lag)
    lagged = data.copy()
    for c in range(1,lag+1):
        lagged["lag%d" % c] = X[:, c-1]
    return lagged

def diff_creation(data):
    data["diff"] = np.nan
    data.ix[1:, "diff"] = (data.iloc[1:, 1].as_matrix() - data.iloc[:len(data)-1, 1].as_matrix())
    return data

结果是一个带有滞后列的数据帧。在

我试过这样的方法:

^{pr2}$

我的df看起来像:

  id_sku|id_store|     dt_ticket_sale|f_qty_recalc|prc_sku|sales|
+------------+--------+-------------------+------------+-------+-----+
|    514655.0|    1090|2017-12-20 00:00:00|           1|   1.23| 1.23|
|    823259.0|     384|2017-12-20 00:00:00|           1|   2.79| 2.79|

我的预期输出是fqty_recalc的一些延迟,在idsku idstore和date的开头(此处未显示):

    diff    lag1    lag2    lag3    lag4    lag5    lag6    lag7    lag8    lag9    ... lag20   lag21   lag22   lag23   lag24   lag25   lag26   lag27   lag28   lag29
0   NaN 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1   0.0 NaN 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

Tags: iddatareturndefasdiffnanmatrix