Как добиться «группового» прокатного значения в сумерках? - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть фрейм данных, и я хочу groupby некоторых атрибутов и вычислить среднее значение rolling для числового столбца в Dask.Я знаю, что в Dask нет реализации для groupby rolling, но я прочитал вопрос SO, который показывает, что это возможно.

Функция прокрутки Dask по групповому синтаксису

Когда яЯ использую тот же синтаксис из поста, я получаю сообщение об ошибке:

UnpicklingError: invalid load key, '�'.

Я не понимаю, почему я получаю ошибку удаления.Может кто-нибудь помочь мне сделать эту работу?

df.groupby(by=path)[metric].apply(lambda df_g: df_g[metric].rolling(5).mean(), meta=(metric, 'f8')).compute(), где path - список столбцов атрибутов, а metric - числовой столбец.

Я также попробовал следующее:

def moving_avg(partition):
    return partition.rolling(5).mean()

df.groupby(by=path)[metric].apply(moving_avg, meta='f8').compute()

Я использую функцию скользящего среднего в Pyspark, где я определяю разделы по группам, а затем накидываю на них окно.

Пример данных:

           CATEGORY_NAME               MKT   ...         Growth   Sales
Date                                         ...                       
2017-01-07            TP              SIMS   ...         0.0000   17280
2017-01-07            TP           TOPRITE   ...        -0.4566    1825
2017-01-07            TP       GIANT HYPER   ...         0.0874   18417
2017-01-07            TP       GIANT HYPER   ...        -0.1359   10914
2017-01-07            TP       GIANT HYPER   ...         0.2245    4422
2017-01-07            TP           TOPRITE   ...         0.1084    1444
2017-01-07            TP       GIANT HYPER   ...         0.0542   18412
2017-01-07            TP            FENCER   ...         0.2766   25184
2017-01-07            TP       GIANT HYPER   ...        -0.0572   19466
2017-01-07            TP           TOPRITE   ...         0.1795    1503
2017-01-07            TP       GIANT HYPER   ...         0.0770   13615

СкажитеЯ хочу сгруппировать ["CATEGORY_NAME", "MKT"] и взять скользящее среднее Sales.

1 Ответ

0 голосов
/ 17 марта 2019

См. Функция прокрутки по групповому синтаксису для ответа.UnpicklingError не имеет отношения к вопросу.

...