通过转置和设置其他列的值重新排序 Dataframe (Pandas)

Reorder Dataframe through transpose and setting values from other columns (Pandas)

给定一个数据框:

   Location    |    Rate   |   Skill    
San Francisco     -    architect      
Albany            -    architect      
San Francisco     -     tester       

我正在尝试将其转化为预期结果:

   Location    |  architect    |   tester   
San Francisco      -         - 
Albany             - 

我考虑过在列 'Skill' 上进行转置,然后将其值设置为 'Rate' 的值,但我不完全确定如何做到这一点。

如果您希望每个 Location-Skill 组合只有一行

df.groupby(['Location', 'Skill']).first().unstack()

或者您可以使用 pivot

df.pivot(index='Location', columns='Skill', values='Rate')

注意 groupby 将仅 return 每个组合的第一行,如果任何组合超过一行, pivot 将失败。