2016-07-25 5 views
2

をトランスポーズ:パンダ:私はDFを持つデータフレーム

私はそれをtransponseと私はそれを行うことができますどのように

ID           url 
            visits count_sec buys 
            aliexpress.com   ebay.com   ozon.ru  aliexpress.com  bonprix.ru 
0012ea90a6deb4eeb2924fb13e844136 3438 33067 25  9 44 0  0 0 0  0 0 0   0 0 0 
001342afb153e2775649dc5ae0460605 0 0 0   0 0 0   1 6 0  0 0 0   0 0 0 
0019b08bc9bb8da21f3b8ecc945a67d3 0 0 0   0 0 0   0 0 0  24 2196 0   42 1378 0 

取得する必要があります

ID url visits count_sec buys 
0012ea90a6deb4eeb2924fb13e844136 aliexpress.com 3438 33067 25 
0012ea90a6deb4eeb2924fb13e844136 ebay.com 9 44 
001342afb153e2775649dc5ae0460605 ozon.ru 1 6 
0019b08bc9bb8da21f3b8ecc945a67d3 aliexpress.com 24 2196  
0019b08bc9bb8da21f3b8ecc945a67d3 bonprix.ru 42 1378  

+0

Multiindexの列にトップが必要ですか? – jezrael

答えて

3

pivot_tableを使用できますが、urlの列には、urlがありません。各列に値が含まれているかどうかは不明であるため、値もランダムです。

#new column with value `url` 
df['url1'] = 'url' 
df1 = df.pivot_table(index='ID', values=['visits','count_sec','buys'],columns=['url1','url']) 
#swap first and second level in MultiIndex in columns 
df1.columns = df1.columns.swaplevel(0,1) 
#remove columns names 
df1 = df1.rename_axis((None,None,None), axis=1) 
print (df1) 
              url        \ 
             visits        
           aliexpress.com bonprix.ru ebay.com ozon.ru 
ID                    
0012ea90a6deb4eeb2924fb13e844136   3438.0  NaN  NaN  NaN 
001342afb153e2775649dc5ae0460605   NaN  NaN  NaN  NaN 
0019b08bc9bb8da21f3b8ecc945a67d3   NaN  NaN  NaN  NaN 

                      \ 
             count_sec        
           aliexpress.com bonprix.ru ebay.com ozon.ru 
ID                    
0012ea90a6deb4eeb2924fb13e844136  33067.0  NaN  9.0  NaN 
001342afb153e2775649dc5ae0460605   NaN  NaN  NaN  1.0 
0019b08bc9bb8da21f3b8ecc945a67d3   24.0  42.0  NaN  NaN 


              buys        
           aliexpress.com bonprix.ru ebay.com ozon.ru 
ID                   
0012ea90a6deb4eeb2924fb13e844136   25.0  NaN  44.0  NaN 
001342afb153e2775649dc5ae0460605   NaN  NaN  NaN  6.0 
0019b08bc9bb8da21f3b8ecc945a67d3   2196.0  1378.0  NaN  NaN 
+0

トップで 'url'、それの下で' visit、count_sec、buy'をするのは本当ですか? – ldevyataykina

+0

そして私は 'merge' dfに関する質問をしました。あなたは私に 'result = pd.merge(short、short1、on = 'ID'、how = 'outer') 'と尋ねました。 'ピボットテーブル'をどのようにマージできますか? – ldevyataykina

+0

編集を参照してください、私はトップレベルの 'url'を追加します。 – jezrael

関連する問題