2016-07-29 2 views
0

I는 다음 DataFrame 가지고모양 변경 dataframe 가로

data = [['label1', 1234], ['label1', 12345], ['label2', 2345], ['label2', 4567], ['label3', 123], ['label2', 4589]] 
pd.DataFrame(data, columns=['label', 'id']) 

출력 :

label id 
0 label1 1234 
1 label1 12345 
2 label2 2345 
3 label2 4567 
4 label3 123 
5 label2 4589 

I는 다음에 데이터를 바꿀 싶습니다

label id1 id2 id3 
0 label1 1234 12345 None 
1 label2 2345 4567 4589 
2 label3 123 None None 

기본적으로 ID를 가로로 배치하고 고유 한 레이블을 ID에 추가합니다. 각 행은 레이블에 입력되어 있습니다.

팬더에서 피보팅 작업을보고 있었는데 출력용으로 필요한 형식으로 데이터를 얻는 데 필요한 정확한 주문을 알아낼 수 없습니다.

도움이 될 것입니다.

답변

3

후 사용 ID를 열거하는 새로운 칼럼을 할당 피봇 :

(df.assign(ids='id' + (df.groupby('label').cumcount()+1).astype(str)) 
    .pivot(index='label', columns='ids', values='id')) 
Out: 
ids  id1  id2  id3 
label       
label1 1234.0 12345.0  NaN 
label2 2345.0 4567.0 4589.0 
label3 123.0  NaN  NaN