Dask groupby和apply:值错误预期轴有6个元素,新值有5个元素

Dask groupby和apply:值错误预期轴有6个元素,新值有5个元素,dask,Dask,我正在尝试基于键折叠数据帧的行。我的文件很大,熊猫抛出了一个内存错误。我目前正在尝试使用dask。我在这里附上代码片段 def f(x): p = x.groupby(id).agg(''.join).reset_index() return p metadf = pd.DataFrame(columns=['c1','p1','pd1','d1']) df = df.groupby(idname).apply(f, meta=metadf).reset_inde

我正在尝试基于键折叠数据帧的行。我的文件很大,熊猫抛出了一个内存错误。我目前正在尝试使用dask。我在这里附上代码片段

def f(x):
        p = x.groupby(id).agg(''.join).reset_index()
        return p
metadf = pd.DataFrame(columns=['c1','p1','pd1','d1'])
df = df.groupby(idname).apply(f, meta=metadf).reset_index().compute()
p的结构与metadf相同。两个数据帧的形状相同。 执行此操作时,会出现以下错误:

ValueError:长度不匹配:预期轴有6个元素,新值有5个元素

我错过了什么?是否有其他方法可以基于dask中的键折叠行

The task in hand, to do the following sample in a dask dataframe
Input csv file :
key,c1,c2,c3......,cn
1,car,phone,cat,.....,kite
2,abc,def,hij,.......,pot
1,yes,no,is,.........,hello
2,hello,yes,no,......,help

Output csv file:
key,c1,c2,c3,.......,cn
1,caryes,phoneno,catis,.....,kitehello
2,abchello,defyes,hijno,....,pothelp
在这种情况下,meta=对应于df.groupby…applyf的输出,而不仅仅是f的输出。也许这些在某种微妙的方式上有所不同


我将首先不提供meta=来解决这个问题。Dask.dataframe将给您一个警告,要求您明确,但如果它能够通过您的函数运行一些示例数据来确定正确的数据类型和列,那么事情仍有希望取得进展。

感谢您的回复。我试过了,但没用。我的功能可能是错误的。我只是想根据一把钥匙来崩溃。在pandas上,df=df.groupbyidname.agg.join.reset_索引非常适合我的要求。我只是不能在达斯克做同样的事情。我犯了很多错误。你能建议一些可以在dask上工作的方法吗?我建议创建一个MCVE来帮助其他人轻松重现你的问题:我在上面添加了一个