熊猫:DataFrame的复杂转换

时间:2019-07-03 21:33:28

标签: python pandas

我有一个与此类似的Pandas DataFrame:

    player  unit    stat1   stat2
0   p1      u1      10      8
1   p1      u2      21      2
3   p2      u1      2       7
4   p2      u2      32      34

玩家和单位的每种组合都存在一行。我想将此DataFrame转换为如下所示:

            p1      p2
u1  stat1   10      2
    stat2   8       7
u2  stat1   21      32
    stat2   2       34

其中单位和各种统计数据转换为多级索引,而玩家则转换为列。我该如何实现?

1 个答案:

答案 0 :(得分:1)

尝试:

df.pivot(index='unit', columns='player').stack(level=0)

或无枢轴:

df.set_index(['unit','player']).stack().unstack('player')

输出:

player      p1  p2
unit              
u1   stat1  10   2
     stat2   8   7
u2   stat1  21  32
     stat2   2  34