Python 将熊猫中的行转换为列

Python 将熊猫中的行转换为列,python,pandas,Python,Pandas,我在数据框中有如下结构的数据 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

我在数据框中有如下结构的数据

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

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

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

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

谢谢cs95,这很有效。