2017-03-04 223 views
0

我現在有一個熊貓數據幀是這樣的:更改熊貓據幀

Month Day class 0 1 2 3 4 5 ... 22 23 


1  1 A  12 8 9 1 12 3 ... 14 13 
1  1 B  0 1 2 3 6 6 ... 3 2 
1  2 A  12 10 9 8 7 8 ... 6 7 
1  2 B  ... some values 

由於數字列意味着在一天`小時「, 我願意把它改成這樣:

Month Day Hours A B 
1  1  1 12 0 
1  1  2 8 1 
1  1  3 9 2 
... 
1  1  23 13 2 
1  2  1 12 .. 

我怎麼能做到這一點

回答

0

您可以使用DataFrame.stackSeries.unstack

print (df) 
    Month Day class 0 1 2 3 4 5 22 23 
0  1 1  A 12 8 9 1 12 3 14 13 
1  1 1  B 0 1 2 3 6 6 3 2 
2  1 2  A 12 10 9 8 7 8 6 7 
3  1 2  B 12 10 9 8 7 8 6 7 

df = df.set_index(['Month','Day','class']).stack().unstack(2).reset_index() 
df = df.rename(columns={'level_2':'Hours'}) 
df.columns.name=None 
print (df) 
    Month Day Hours A B 
0  1 1  0 12 0 
1  1 1  1 8 1 
2  1 1  2 9 2 
3  1 1  3 1 3 
4  1 1  4 12 6 
5  1 1  5 3 6 
6  1 1 22 14 3 
7  1 1 23 13 2 
8  1 2  0 12 12 
9  1 2  1 10 10 
10  1 2  2 9 9 
11  1 2  3 8 8 
12  1 2  4 7 7 
13  1 2  5 8 8 
14  1 2 22 6 6 
15  1 2 23 7 7