繁体   English   中英

串联时将新级别添加到MultiIndex

[英]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)

concatkeysnames参数一起使用:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM