我有一个以下dask数据帧结构,其中VAR的唯一值是31:
DATETIME START END VAR N A W
2016-08-15 06:00:00 21600000 22499000 var1 0.0 0.0 0.00
2016-08-15 06:00:00 21600000 22499000 var2 220.0 3.0 211.40
2016-08-15 06:00:00 21600000 22499000 var3 100.0 20.0 218.42
,总形状为(814463,8)
我试图" univot" VAR值用下一个代码分隔列:
# df is Dask dataframe
var_df = None
dt_df = None
for var in VAR_CONSTANTS:
tmp_df = df3[df3.VAR == var]
tmp_df = tmp_df.rename(
columns={
'N': var[:-1] + '_N',
'A': var[:-1] + '_T',
'W': var[:-1] + '_W'}
)
tmp_df = tmp_df.drop(['VAR'], axis=1)
if not var_df:
var_df = tmp_df.copy()
else:
var_df = dd.merge(var_df, tmp_df, how='inner', on=['DATETIME'])
合并10个变量后出现内存错误。
服务器有50 GB RAM和6个内核。 Dask是最新版本
我讨厌这段代码,也许Dask中的代码存在主要问题。