Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:数据帧的复杂转换_Python_Pandas - Fatal编程技术网

Python 熊猫:数据帧的复杂转换

Python 熊猫:数据帧的复杂转换,python,pandas,Python,Pandas,我有一个与此类似的数据帧: player unit stat1 stat2 0 p1 u1 10 8 1 p1 u2 21 2 3 p2 u1 2 7 4 p2 u2 32 34 玩家和单位的每种组合都有一行。我想将此数据帧转换为如下所示的数据帧: p1 p2 u1 stat1 10 2

我有一个与此类似的数据帧:

    player  unit    stat1   stat2
0   p1      u1      10      8
1   p1      u2      21      2
3   p2      u1      2       7
4   p2      u2      32      34
玩家和单位的每种组合都有一行。我想将此数据帧转换为如下所示的数据帧:

            p1      p2
u1  stat1   10      2
    stat2   8       7
u2  stat1   21      32
    stat2   2       34
在这里,单位和各种统计数据被转换成一个多级索引,玩家被转换成列。我如何才能做到这一点?

试试:

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
df.pivot\u table(index=['player',columns=['unit']).T.swaplevel(0,1,0).sort\u index()
df.melt(['player','unit']).pivot\u table('value',['unit','variable','player')