热线电话:13121318867

登录
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.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子