首页 > 解决方案 > 在熊猫中将行转换为列

问题描述

我在熊猫数据框中有以下结构中的数据

User    day games_won   games_draw  games_lost  tips_taken
user1   1   10               4          2         5
user2   1   16               7          1         3
user1   2   2                8          7         0

我希望它被转换成以下格式

User    day games_won_day1  games_won_day2  games_draw_day1  games_draw_day2  games_lost_day1   games _lost_day2  tips_taken_day1 tips_taken_day2

标签: pythonpandas

解决方案


您可以从设置索引开始,然后取消堆叠。最后,修复标题。

df2 = df.set_index(['User', 'day']).unstack()
df2.columns = df2.columns.map('{0[0]}_day{0[1]}'.format)

df2

       games_won_day1  games_won_day2  games_draw_day1  games_draw_day2  games_lost_day1  games_lost_day2  tips_taken_day1  tips_taken_day2
User                                                                                                                                       
user1            10.0             2.0              4.0              8.0              2.0              7.0              5.0              0.0
user2            16.0             NaN              7.0              NaN              1.0              NaN              3.0              NaN

如果您不希望“用户”作为输出中的索引,您可以在之后将其重置。但是,我认为保留是有道理的。


推荐阅读