如何在pandas中将列转换为行?

4

I have a dataframe:

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
1个回答

4

首先我们将创建一个 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

你能否发布一个文本解释(不仅仅是内联注释)? - EdChum
当然,我已经更新了我的回答。如果您仍需要进一步的解释,请告诉我。 - Nader Hisham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接