Как выполнить Diff для объекта Dask SeriesGroup - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть многоиндексный фрейм данных dask, который мне нужен для групповой работы, за которой следует диффузия.Эта операция тривиальна в чистых пандах с помощью следующей команды:

df.groupby('IndexName')['ValueName'].diff().

Dask, однако, не реализует функцию diff для объектов SeriesGroupBy.Я попытался реализовать свою собственную команду с помощью следующей команды:

df.groupby('IndexName')['ValueName'].apply(lambda x: x.diff(1) )

, но это выдает следующую ошибку:

ValueError: Wrong number of items passed 0, placement implies 3987

Любые идеи:

Ниже приведенопримерный кадр данных:

dummy = {
    'Index1' : pd.DataFrame({'A' : np.arange(10),'ValueName': np.random.rand(10)}),
    'Index2' : pd.DataFrame({'A' : np.arange(5),'ValueName': np.random.rand(5)})
}
pdf = pd.concat(dummy,names=['IndexName'])
def getDummy(f):
    return f
dfs = [delayed(getDummy)(f) for f in [pdf]] 
#NOTE: dd.from_pandas doesn't support multiindex...but delayed does
df = dd.from_delayed(dfs)
...