dask groupby结果每个分区的重复第一组

时间:2019-05-23 01:36:18

标签: python-3.x pandas group-by pandas-groupby dask

Im分组结果基于两个键,其中df包含10M +行,5个列,但对于我自己定义的函数f,在groupby()。apply(f)之后,groupby的结果一直重复第一组。

原始df enter image description here

首先,我使用熊猫,它复制了第一组。 然后我尝试用4个分区进行dask,它复制了该分区的第一组。

分组依据结果 enter image description here

应用功能

def f(x):
    x['QUANTITY_'] = x['QUANTITY'].shift(len_week_predict).rolling(len_week_train).mean()
    x = x.dropna()
    mae = (x['QUANTITY_'] - x['QUANTITY']).abs().sum()
    mae_f = (x['QUANTITY'].shift(1) - x['QUANTITY']).dropna().abs().sum() * (len(x) / (len(x)-1))
    if mae_f == 0:
        mase = mae / sigma
    else:
        mase = mae / mae_f
    return pd.Series([mae, mae_f, mase], index=['mae', 'mae_f', 'mase'])

我自己定义的函数f是否存在任何问题?

import dask.dataframe as dd
ddf_ = dd.from_pandas(df_, npartitions=4)
df_bsl = ddf_.groupby(by=['CUST_NUMBER', 'ITEM_NUM']).apply(f).compute(scheduler='processes')

我希望groupby没有重复的结果。

0 个答案:

没有答案