我有一个数据框:
user_id product_name
0001 a
0001 b
0001 c
0002 b
0003 a
0003 c
0003 d
我希望 product_name 列转换为:
user_id A B C D
0001 a b c NaN
0002 NaN b NaN NaN
0003 a NaN c d
最佳答案
首先,我们将创建一个重复的 product_name
列,将其命名为 product_name_extra
我们稍后将使用此列
df['product_name_extra'] = df.product_name
Out[223]:
user_id product_name product_name_extra
1 a a
1 b b
1 c c
2 b b
3 a a
3 c c
3 d d
然后旋转编辑后的数据框,如果您想获得有关旋转的更多信息,请检查此 pivot
df_pivot = df.pivot(index='user_id' , columns='product_name' , values='product_name_extra')
Out[222]:
product_name a b c d
user_id
1 a b c NaN
2 NaN b NaN NaN
3 a NaN c d
然后最后重命名您的列
df_pivot.rename(columns=str.upper)
Out[225]:
product_name A B C D
user_id
1 a b c NaN
2 NaN b NaN NaN
3 a NaN c d
关于pandas - 如何在 Pandas 中将列转换为行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32582047/