[英]Add new level to MultiIndex when concatenating
将一些大小,列和索引相同但内容有所不同的数据帧连接在一起。 生成新索引以使原始索引保持不变,但最外层的索引现在表示已连接的数据帧号的最佳方法是什么?
DataFrame A:
Idx1 | Idx2 || Col
0 0 'A'
1 'B'
1 0 'C'
1 'D'
DataFrame B:
Idx1 | Idx2 || Col
0 0 'E'
1 'F'
1 0 'G'
1 'H'
DataFrame AB:
Idx0 | Idx1 | Idx2 || Col
0 0 0 'A'
1 'B'
1 0 'C'
1 'D'
1 0 0 'E'
1 'F'
1 0 'G'
1 'H'
我对索引和堆栈仍然不太满意,但是我认为那是必要的。 任何帮助是极大的赞赏!
A = pd.DataFrame({'Col': ['A', 'B', 'C', 'D'], 'Idx1': [0,0,1,1], 'Idx2':[0,1,0,1]})
B = pd.DataFrame({'Col': ['E', 'F', 'G', 'H'], 'Idx1': [0,0,1,1], 'Idx2':[0,1,0,1]})
A.set_index(keys=['Idx1', 'Idx2'], inplace=True)
B.set_index(keys=['Idx1', 'Idx2'], inplace=True)
将concat
与keys
和names
参数一起使用:
pd.concat([A, B], keys=[0, 1], names=['Idx0'])
结果输出:
Col
Idx0 Idx1 Idx2
0 0 0 A
1 B
1 0 C
1 D
1 0 0 E
1 F
1 0 G
1 H
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.