Dask中的基本groupby操作

时间:2016-08-11 16:35:53

标签: python pandas dask

我正在尝试使用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()

1 个答案:

答案 0 :(得分: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