通过转置和设置其他列的值重新排序 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
将失败。
给定一个数据框:
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
将失败。