2019-02-25
阅读量:
684
连接具有相同数量的分区但列数不同的两个数据帧(dask)
我有两个具有相同分区数的数据帧。我想连接这些数据帧(第一个分区与第一个分区,第二个分区与第二个分区,等等)因此,最终数据帧具有初始分区数(V),每个分区中的行数相同(n)但是列数不同(数据帧1和数据帧2的列数之和(n+m))。第一个数据帧(A)有一个时间戳作为索引,但第二个(B)没有该列。两个数据帧都已排序,我只需将这些数据集放在一起,而不会在每个分区中进行任何更改。此外,索引A将是新数据框的索引。
A: data-frame (V partitions) - every partition (nXn)
B: data-frame (V partitions) - every partition (nXm)
C (new data-frame): (V partitions) - every partition (nX(n+m))
解决办法:这不是太难:
C = dd.from_delayed([dask.delayed(pd.concat)([a, b])
for a, b in zip(A.to_delayed(), B.to_delayed())],
meta=A._meta)
说明
将每个数据帧的分区作为延迟对象
将这些对传递给 concat
将连接对形成一个数据帧
重复使用元数据,因为输出具有与输入相同的列和索引
(当然,C仍然是懒惰的,只有当你做某事时才会触发操作)






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
1条评论