交织两个数据帧

假设我有两个数据帧d1d2

d1=pd.DataFrame(np.one((3,3),dtype=int),list('abc'),[0,1,2])
d2=pd.DataFrame(np.zero((3,2),dtype=int),list('abc'),[3,4])

d1
0  1  2
a 11
b 1 1
c 1

d2
3  4
a 0 0
B00
C00

将两个数据帧的列交织在一起是一种简单而通用的方法。我们可以假设d2中的列数总是比d1中的列数少一个。而且,指数是相同的

我想要这个:

pd.concat([d1[0],d2[3],d1[1],d2[4],d1[2]],轴=1)
0  3  1  4  2
10101
b10101
C10101

使用pd.concat组合数据帧,并使用toolz.interleave对列重新排序:

来自toolz的

导入交错
pd.concat([d1,d2],axis=1)[列表(交错([d1,d2])]

结果输出如预期:

031412
10101
b10101
C10101

发表评论