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

标签 pandas pivot dataframe pivot-table

我有一个数据框:

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/

相关文章:

python-2.7 - 尝试旋转 Pandas 数据框时出现 ReshapeError

sql - 更改sql中表的方向

python - 如何根据 python(pandas)中的用户输入删除列?

r - 删除另一个数据框中存在的行?

dataframe - Spark数据帧过滤器问题

python - 数据框 Pandas 中按最大周期分组的问题

excel - 使用 Python 在 Excel 中创建漂亮的表格

python - Pandas 数据框的递归转置

c# - 在 C# 中旋转多列

python - 从 CET/CEST 到 UTC 的时间序列转换