将数据框的索引设置为列,反之亦然

时间:2014-05-23 09:08:05

标签: python pandas

如何将数据框的索引设置为列,反之亦然?我试着将它拆开但是徒劳无功。

我想要转换此数据框

       Type1    Type2   Type3
Hour                
0        5   0   13
1        3   5   5
2        3   2   11
3        9   3   8
4        1   3   2
5        0   0   2
6        1   5   0
7        0   1   0
8        2   0   0
9        1   0   1
10       0   0   2
11       6   2   2
12       5   3   1
13       3   4   2
14       4   2   4
15       10  3   6
16       7   1   6
17       18  1   5
18       6   2   6
19       2   4   27
20       10  8   16
21       19  12  36
22       5   9   11
23       8   8   23

以下内容;

          0  1   2   3   4    5    6    7    8   9   10 ...
Type 1    5  3   3   9   1 ....
Type 2    0  5   2   3   3 ....
Type 3    13 5  11   8   2 ....

编辑:  我实际上在原始df中有一个多索引,看起来像[(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (13, 1), (14, 1), (15, 1), (16, 1), (17, 1), (18, 1), (19, 1), (20, 1), (21, 1), (22, 1), (23, 1)]。我该如何处理?

2 个答案:

答案 0 :(得分:3)

转置数据框:

df.T

这可以解决这个问题吗?

答案 1 :(得分:1)

两次调用unstack:

In [47]:

df.unstack().unstack()

Out[47]:
       0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  \
Type1   5   3   3   9   1   0   1   0   2   1   0   6   5   3   4  10   7  18   
Type2   0   5   2   3   3   0   5   1   0   0   0   2   3   4   2   3   1   1   
Type3  13   5  11   8   2   2   0   0   0   1   2   2   1   2   4   6   6   5   

       18  19      
Type1   6   2 ...  
Type2   2   4 ...  
Type3   6  27 ...  

[3 rows x 24 columns]

同样.T可行:

In [48]:

df.T
Out[48]:
       0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  \
Type1   5   3   3   9   1   0   1   0   2   1   0   6   5   3   4  10   7  18   
Type2   0   5   2   3   3   0   5   1   0   0   0   2   3   4   2   3   1   1   
Type3  13   5  11   8   2   2   0   0   0   1   2   2   1   2   4   6   6   5   

       18  19      
Type1   6   2 ...  
Type2   2   4 ...  
Type3   6  27 ...  

[3 rows x 24 columns]