У меня есть многоиндексный фрейм данных 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)