我正在尝试在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
目前没有回答
相关问题 更多 >
编程相关推荐