垂直连接两个时间戳索引的dask Dataframe时,我有一个与this类似的问题。
我有两个dask数据帧df1,df2:
df1.index:
Dask Index Structure:
npartitions=1
2018-03-03 13:04:44.497929 datetime64[ns]
2018-03-03 13:23:04.759840 ...
Name: time, dtype: datetime64[ns]
Dask Name: getitem, 8 tasks
df2.index:
Dask Index Structure:
npartitions=1
2018-03-03 07:09:04.184453 datetime64[ns]
2018-03-03 07:32:46.815356 ...
Name: time, dtype: datetime64[ns]
Dask Name: getitem, 8 tasks
它们具有完全相同的列名和类型。现在我想使用dask.dataframe.concat来连接它们:
#df1 & df2 are dask dataframes
print(df1.divisions)
print(df2.divisions)
dfs=dd.concat([df1,df2],axis=0,interleave_partitions=False)
输出:
(Timestamp('2018-03-03 13:04:44.497929'),Timestamp('2018-03-03 13:23:04.759840')) (时间戳('2018-03-03 07:09:04.184453'),时间戳('2018-03-03 07:32:46.815356')) ValueError:所有输入都有已知的划分,不能按顺序连接。指定interleave_partitions = True忽略顺序
除非指定interleave_partitions = True,否则两个ddf不能串联。但是两个数据帧的索引之间没有交错。这是由于dask中支持datetimeindex的限制引起的吗?还是我需要指定其他参数或将索引转换为int或double?
答案 0 :(得分:1)
但是两个数据帧的索引之间没有交织
Dask在这里似乎与您不同意。似乎认为两个数据帧的索引范围确实有些重叠。可以,您可以按要求添加关键字,然后一切正常。
dfs=dd.concat([df1,df2],axis=0,interleave_partitions=True)
如果您认为自己在这里遇到了错误,那么我建议您将其简化为最小的示例并发布错误报告。