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

拜托,你能帮我吗?

这会非常好,

谢谢,

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

1。方法set_index,stack,reset_index

使用set_indexunstackreset_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

最新更新