Python 连接两个分区数相同但列数不同的数据帧(dask)
我有两个分区数相同的数据帧。我想连接这些数据帧(第一个分区与第一个分区,第二个分区与第二个分区,等等),因此,最终的数据帧具有初始分区数(Python 连接两个分区数相同但列数不同的数据帧(dask),python,pandas,dataframe,dask,Python,Pandas,Dataframe,Dask,我有两个分区数相同的数据帧。我想连接这些数据帧(第一个分区与第一个分区,第二个分区与第二个分区,等等),因此,最终的数据帧具有初始分区数(V),每个分区中的行数相同(n),但列数不同(数据帧1和数据帧2的列数之和(n+m))。第一个数据帧(A)有一个时间戳作为索引,但第二个数据帧(B)没有此列。两个数据帧都已排序,我只需要将这些数据集放在一起,而不需要在每个分区中进行任何更改。此外,A的索引将是新数据帧的索引 A: data-frame (V partitions) - every partit
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仍然是懒惰的,只有当您对其执行某些操作时才会触发该操作)我想我是在连接行,但您希望连接列,但您明白了