2016-12-13 8 views
0

私はこのようになりますデータフレームがあります。Pythonのパンダ - データフレームのピボットテーブル

Hour DayOfWeek 
00 Friday   4 
     Wednesday  19 
01 Friday   7 
07 Saturday  1 
     Thursday  3 
     Tuesday  3 
     Wednesday  5 
08 Friday   1 
     Monday  17 
     Thursday  10 
     Tuesday  16 
     Wednesday  8 

を、私はそうのようなデータフレームにそれをしたい:

Hour Sunday Monday Tuesday Wednesday Thursday 
01  4  5  6   0   7 
03  3  5  6   6   0 
05  2  1  8   6   9 
11  0  1  8   0   0 
12  1  5  7   6   7 
15  1  5  6   0   2 

プラス私が記入したいです0時から23時の間の0になるようにしてください。

これはデータフレーム内の高度なインデックス作成のように見えますが、どのようにすればいいのか分かりません。

あなた

+0

はどのようにあなたの最初の1から2番目のデータフレームを作成するのですか?例のためにあなたの第2のものには「Wednsday 19」はありません... – MMF

答えて

0

に感謝、私はあなたがunstackが必要だと思う:

print (df.index) 
MultiIndex(levels=[[0, 1, 7, 8], 
        ['Friday', 'Monday', 'Saturday', 'Thursday', 'Tuesday', 'Wednesday']], 
      labels=[[0, 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3], 
        [0, 5, 0, 2, 3, 4, 5, 0, 1, 3, 4, 5]], 
      names=['Hour', 'DayOfWeek']) 

print (df.unstack(fill_value=0)) 
DayOfWeek Friday Monday Saturday Thursday Tuesday Wednesday 
Hour                
0    4  0   0   0  0   19 
1    7  0   0   0  0   0 
7    0  0   1   3  3   5 
8    1  17   0  10  16   8 

reindexを追加続か:

print (df.unstack(fill_value=0).reindex(np.arange(24), fill_value=0)) 

Hour                
0    4  0   0   0  0   19 
1    7  0   0   0  0   0 
2    0  0   0   0  0   0 
3    0  0   0   0  0   0 
4    0  0   0   0  0   0 
5    0  0   0   0  0   0 
6    0  0   0   0  0   0 
7    0  0   1   3  3   5 
8    1  17   0  10  16   8 
9    0  0   0   0  0   0 
10    0  0   0   0  0   0 
11    0  0   0   0  0   0 
12    0  0   0   0  0   0 
13    0  0   0   0  0   0 
14    0  0   0   0  0   0 
15    0  0   0   0  0   0 
16    0  0   0   0  0   0 
17    0  0   0   0  0   0 
18    0  0   0   0  0   0 
19    0  0   0   0  0   0 
20    0  0   0   0  0   0 
21    0  0   0   0  0   0 
22    0  0   0   0  0   0 
23    0  0   0   0  0   0 
関連する問題