多列还是块融化然后旋转?

时间:2018-09-11 16:29:30

标签: python-3.x pandas reshape melt

我正在努力解决数据重塑问题。我有大约类似的数据(但直到C10组,我添加了自己的多索引。

df = pd.DataFrame({('C0',0) : {0:'ID1', 1:'ID2', 2:'ID3'},
               ('C0',1) : {0:'ID1', 1:'ID2', 2:'ID3'},
               ('C1',2) : {0:'A'  , 1:'A'  , 2:'A'},
               ('C1',3) : {0:'B'  , 1:'B'  , 2:'B'},
               ('C1',4) : {0:'C'  , 1:'C'  , 2:'C'},
               ('C2',5) : {0:'A'  , 1:'A'  , 2:'A'},
               ('C2',6) : {0:'B'  , 1:'B'  , 2:'B'},
               ('C2',7) : {0:'C'  , 1:'C'  , 2:'C'},
               ('C3',8) : {0:'A'  , 1:'A'  , 2:'A'},
               ('C3',9) : {0:'B'  , 1:'B'  , 2:'B'},
               ('C3',10) : {0:'C'  , 1:'C'  , 2:'C'}
              })

    C0      C1          C2          C3
    0   1   2   3   4   5   6   7   8   9   10
0   ID1 ID1 A   B   C   A   B   C   A   B   C
1   ID2 ID2 A   B   C   A   B   C   A   B   C
2   ID3 ID3 A   B   C   A   B   C   A   B   C

ID列实际上不是相同的值,但是此数据的唯一键跨多个列。类似地,As,Bs,Cs实际上不是相同的值,而只是不同类型的值。理想的最终结果是这样

    0   1   2   3   4   5
0   ID1 ID1 C1  A   B   C
1   ID1 ID1 C1  A   B   C
2   ID1 ID1 C1  A   B   C
3   ID2 ID2 C2  A   B   C
4   ID2 ID2 C2  A   B   C
5   ID2 ID2 C2  A   B   C
6   ID3 ID3 C3  A   B   C
7   ID3 ID3 C3  A   B   C
8   ID3 ID3 C3  A   B   C

为了解决这个问题,我进入了一个中间点,在这里我融化了第一位,以便将两个列索引都包含在一行中,但是我无法将其重新设置为所需的格式。最终,我还需要列举C组中的内容,但我相信我可以做到。在这里先发帖,谢谢,但是我已经尽我所能检查了这里和其他地方。

0 个答案:

没有答案