2016-08-22 174 views
1

我有如下一個數據幀:移調一個熊貓數據幀

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 

讓我知道是否需要額外的信息。

+0

看看堆棧還是堆棧。 – IanS

回答

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 
+0

謝謝艾漢,這工作 – Anu