Python将数据转置为观察值
我有个问题 我的初始df如下所示:Python将数据转置为观察值,python,pandas,Python,Pandas,我有个问题 我的初始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
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
拜托,你能帮我吗
那太好了
谢谢,
N给定数据:
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
给定数据:
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.方法设置索引、堆栈、重置索引
使用设置索引
,取消堆栈
和重置索引
:
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.pivot(index='Col 1',columns = 'Col 2', values= 'Col 3').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
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 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
现在,执行熊猫造型:
输出:
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
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
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.方法透视和重置索引
或者使用枢轴
和重置索引
:
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.pivot(index='Col 1',columns = 'Col 2', values= 'Col 3').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
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
1.方法设置索引、堆栈、重置索引
使用设置索引
,取消堆栈
和重置索引
:
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.pivot(index='Col 1',columns = 'Col 2', values= 'Col 3').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
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 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
现在,执行熊猫造型:
输出:
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
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
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.方法透视和重置索引
或者使用枢轴
和重置索引
:
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.set_index(['Col 1','Col 2'])['Col 3'].unstack().reset_index()
df.pivot(index='Col 1',columns = 'Col 2', values= 'Col 3').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
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
Col 2 Col 1 purchase 1 purchase 2 purchase 3 purchase 4
0 julia skirt74 short74 coat14 coat15
1 laura dress23 skirt55 shirt47 coat45
到目前为止你试过什么?另外,我看不到您的输出有任何模式以及您希望如何格式化。我想
coast10
应该是coat15
?到目前为止您尝试了什么?另外,我看不到您的输出有任何模式以及您希望如何格式化。我想coast10
应该是coat15
?您不应该复制和粘贴答案。;-)@达里乌斯莫维奇:)你是对的,幸好我没有。不过,我会投票支持你的解决方案!我喜欢。你不应该复制和粘贴答案。;-)@达里乌斯莫维奇:)你是对的,幸好我没有。不过,我会投票支持你的解决方案!我喜欢。