【发布时间】:2019-09-03 05:35:24
【问题描述】:
有点问题。我有两个具有以下格式的 dask 数据框:
#DF1.csv
DATE|EVENTNAME|VALUE
#DF2.csv
DATE|EVENTNAME0|EVENTNAME1|...|EVENTNAMEX
我想在时间 t(日期)和列(事件名称)将 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 专业人士可以帮助我吗?
编辑:// 这在 pandas 中效果很好,但在 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 '
有什么想法吗?
【问题讨论】:
标签: python pandas dataframe merge dask