2016-07-25 12 views
2

조옮김 :팬더 : 나는 DF가 dataframe

나는 그것을 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에 최상위 URL이 필요합니까? – jezrael

답변

3

pivot_table을 사용할 수 있지만 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'을 쓰고 그 아래에 방문, count_sec, 구매를하는 것이 진짜입니까? – ldevyataykina

+0

그리고'merge' df에 대해 질문했습니다. 당신은 내게'result = pd.merge (short, short1, on = 'ID', how = 'outer') '이라고 물었다. 하지만 피벗 테이블을 어떻게 병합 할 수 있습니까? – ldevyataykina

+0

편집을 참조하십시오, 최상위 'url'을 추가합니다. – jezrael