如何将Python Dask Dataframes合并到列中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Python Dask Dataframes合并到列中?相关的知识,希望对你有一定的参考价值。
有点问题。我有两个dask数据帧,格式如下:
#DF1.csv
DATE|EVENTNAME|VALUE
#DF2.csv
DATE|EVENTNAME0|EVENTNAME1|...|EVENTNAMEX
我想在时间t(日期)和列(EventName)将DF1.csv中的值合并到DF2.csv中。我现在使用Dask,因为我正在使用大量的日期集~50gb。我注意到你不能在Dask中直接赋值。所以我试过,dd.Series.where:
df[nodeid].where(time,value) => Result in an error (for row in df.iterrows():
#df2.loc[row[0],row[1][0]] =row[1][1])
我也尝试了合并,但生成的Dask数据帧没有分区,导致MemoryError,因为如果我使用.to_csv('data - * .csv')方法,所有数据集都将加载到内存中。合并数据帧应该很容易,但我现在还没有任何线索。有没有Dask专业版,可以帮助我?
编辑://这适用于熊猫但不适用于dask:
for row in df.iterrows():
df2.loc[row[0],row[1][0]] =row[1][1]
试过这样的事情:
for row in df.iterrows():
df2[row[1][0]] = df2[row[1][0]].where(row[0], row[1][1])
#Result in Error => raise ValueError('Array conditional must be same shape as '
有任何想法吗?
答案
对于所有感兴趣的人,您可以使用:
#DF1
df.pivot(index='date', columns='event', values='value') #to create DF2 Memory efficient
另见:https://pandas.pydata.org/pandas-docs/stable/user_guide/reshaping.html
以前,花了很长时间,可怕的记忆力饥饿,并没有带来我想要的结果。如果您尝试更改数据帧方案,只需使用Pandas pivot。
编辑://并且没有理由再使用Dask,进一步加快整个过程;)
以上是关于如何将Python Dask Dataframes合并到列中?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Apache Spark Dataframes (Python) 执行 Switch 语句
如何在Python Pandas中将MultiIndex Dataframes与权重合并?