2017-06-23 66 views
0

我有一個問題,Python的移調數據與觀察

我最初df是這樣的:

Col 1 Col 2 Col 3 

laura purchase 1 dress23 

laura puchase 2 skirt55 

laura purchase 3 shirt47 

laura purchase 4 coat45 

julia puchase 1 skirt74 

julia purchase 2 short74 

julia purchase 3 coat14 

julia purchase 4 coat15 


,我想獲得它使用庫熊貓

Col 1 Purchase 1 Purchase 2 Purchase 3 Purchase 4 
Laura dresse23 skirt55  shirt47  coat45 
Julia skirt74 short74  coat14  coast10 

請問,你能幫助我嗎?

這將是非常好的,

謝謝你,

ň

+2

你嘗試過這麼遠嗎?另外,我沒有看到您的輸出有任何模式,以及您希望如何格式化它。 – victor

+0

我猜'coast10'應該是'coat15'? –

回答

1

鑑於數據:

col 1  col 2 col 3 
0 laura purchase 1 dress23 
1 laura purchase 2 skirt55 
2 laura purchase 3 shirt47 
3 laura purchase 4 coat45 
4 julia purchase 1 skirt74 
5 julia purchase 2 short74 
6 julia purchase 3 coat14 
7 julia purchase 4 coat15 

轉型:

df = df.pivot(index='col 1', columns='col 2', values='col 3').reset_index() 
df = df.rename(columns={'col 1': 'name'}) 
df.columns.name = 'id' 
print(df) 

結果:

id name purchase 1 purchase 2 purchase 3 purchase 4 
0 julia skirt74 short74  coat14  coat15 
1 laura dress23 skirt55 shirt47  coat45 
1

1.方法set_index,堆棧,reset_index

使用​​,unstackreset_index

df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index() 

輸出:

Col 2 Col 1 puchase 1 puchase 2 purchase 1 purchase 2 purchase 3 purchase 4 
0  julia skirt74  None  None short74  coat14  coat15 
1  laura  None skirt55 dress23  None shirt47  coat45 

先做一個小數據清理和你結果看起來像。 新的輸入DF,

Col 1  Col 2 Col 3 
0 laura purchase 1 dress23 
1 laura purchase 2 skirt55 
2 laura purchase 3 shirt47 
3 laura purchase 4 coat45 
4 julia purchase 1 skirt74 
5 julia purchase 2 short74 
6 julia purchase 3 coat14 
7 julia purchase 4 coat15 

現在,執行大熊貓重塑:

df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index() 

輸出:

Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4 
0  julia skirt74 short74  coat14  coat15 
1  laura dress23 skirt55 shirt47  coat45 

2.方法支點和reset_index

或者使用pivotreset_index

df.pivot(index='Col 1',columns = 'Col 2', values= 'Col 3').reset_index() 

輸出:

Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4 
0  julia skirt74 short74  coat14  coat15 
1  laura dress23 skirt55 shirt47  coat45 
+0

你不應該複製和粘貼答案。 ;-) –

+0

@DariusMorawiec :)你是對的,我沒有。但是,我會upvote你的解決方案!我喜歡。 –