转置Pandas DataFrame

时间:2016-08-22 14:58:05

标签: pandas dataframe transpose

我有一个DataFrame如下:

ID     V1  V2  V3  V4  
3261    a   i   k   3  
3262    b   j   l   2  
3263    c       m   4  
3264    d   j   k   5  
3265    e   i       5  

我想将其转换如下,有没有办法做到这一点?

ID  NewHeader1  NewHeader2  
3261    V1  a  
3261    V2  i  
3261    V3  k  
3261    V4  3  
3262    V1  b  
3262    V2  j  
3262    V3  l  
3262    V4  2  
3263    V1  c  
3263    V2    
3263    V3  m  
3263    V4  4  
3264    V1  d  
3264    V2  j  
3264    V3  k  
3264    V4  5  
3265    V1  e  
3265    V2  i  
3265    V3    
3265    V4  5  

如果需要其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

pd.melt(df, id_vars ='ID', var_name='NewHeader1', value_name='NewHeader2')
Out: 
      ID NewHeader1 NewHeader2
0   3261         V1          a
1   3262         V1          b
2   3263         V1          c
3   3264         V1          d
4   3265         V1          e
5   3261         V2          i
6   3262         V2          j
7   3263         V2           
8   3264         V2          j
9   3265         V2          i
10  3261         V3          k
11  3262         V3          l
12  3263         V3          m
13  3264         V3          k
14  3265         V3           
15  3261         V4          3
16  3262         V4          2
17  3263         V4          4
18  3264         V4          5
19  3265         V4          5

您可以在最后为已排序的版本添加.sort_values(by='ID')

pd.melt(df, id_vars ='ID', var_name='NewHeader1', value_name='NewHeader2').sort_values('ID')
Out: 
      ID NewHeader1 NewHeader2
0   3261         V1          a
5   3261         V2          i
10  3261         V3          k
15  3261         V4          3
1   3262         V1          b
6   3262         V2          j
11  3262         V3          l
16  3262         V4          2
2   3263         V1          c
17  3263         V4          4
7   3263         V2           
12  3263         V3          m
3   3264         V1          d
8   3264         V2          j
18  3264         V4          5
13  3264         V3          k
9   3265         V2          i
4   3265         V1          e
14  3265         V3           
19  3265         V4          5