1
我正在尝试使用Dask来处理大文件(50 GB)。通常,我会将它加载到内存中并使用Pandas。我想分两列“A”和“B”,每当列“C”以一个值开始时,我想在该列中为该特定组重复该值。Dask中的基本groupby操作
在熊猫,我会做到以下几点:
df['C'] = df.groupby(['A','B'])['C'].fillna(method = 'ffill')
什么将是DASK等价? 另外,我有点失去了作为为大熊猫而不是如何构建在DASK问题,
谢谢你,
我迄今取得的进展:
第一组指标:
df1 = df.set_index(['A','B'])
然后GROUPBY:
df1.groupby(['A','B']).apply(lambda x: x.fillna(method='ffill').compute()
谢谢Nirlzr。我想填充NAN主题的每个组中的值,这通常在组之间有所不同。尽管他们处于不同的群体中,您的解决方案是否为所有的NAN提供了相同的价值? – dleal
是的,不幸的是你是正确的。如果这是你的目标 - 将会类似于'df ['C'] = df ['C']。fillna(c_fill)'工作吗? – NirIzr
请注意,在我的小例子中:http://stackoverflow.com/questions/39048181/groupby-of-splitted-data-pandas如果我读取A作为dask数据帧,以下命令工作:A.groupby('ID' )['value']。apply(lambda x:x.fillna(method ='ffill'))然而,在我感兴趣的大数据集中,我得到以下错误:ValueError:无法将字符串转换为float:T – dleal