3

我正在尝试使用 Dask 来处理一个大文件(50 GB)。通常,我会将它加载到内存中并使用 Pandas。我想对两列“A”和“B”进行分组,每当“C”列以一个值开头时,我想在该列中为该特定组重复该值。

在熊猫中,我会做以下事情:

df['C'] = df.groupby(['A','B'])['C'].fillna(method = 'ffill')

Dask 中的等价物是什么?另外,对于如何在 Dask 中而不是在 Pandas 中构造问题,我有点迷茫,

谢谢你,

到目前为止我的进展:

第一组指数:

df1 = df.set_index(['A','B'])

然后分组:

df1.groupby(['A','B']).apply(lambda x: x.fillna(method='ffill').compute()
4

1 回答 1

1

看来 dask 目前没有实现对象的fillna方法GroupBy。我前段时间尝试过 PRing,很快就放弃了。

此外,dask 不支持该method参数(因为使用延迟算法实现并不总是微不足道的)。

可以fillna在分组之前使用解决方法,如下所示:

df['C'] = df.fillna(0).groupby(['A','B'])['C']

虽然这没有经过测试。

你可以在这里找到我的(失败的)尝试:https ://github.com/nirizr/dask/tree/groupy_fillna

于 2016-08-19T23:24:37.537 回答