2017-06-23 24 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你的解决方案!我喜欢。 –