Python 将列转换为dataframe的标题

Python 将列转换为dataframe的标题,python,pandas,Python,Pandas,我有一个df(如下所示除外),它有一个名为GRP的列,其他列中有数据。我想做的是将其他列按Grp w9th的值拆分,Grp值作为列标题 原始DF >>> xx x1 Grp 2 3.670 8ZD (S00K49) 3 3.659 8ZD (S00K49) 4 3.576 8ZD (S00K49) 5 3.509 8ZD (S00K49) 10 3.879 MPN 603 (

我有一个df(如下所示除外),它有一个名为GRP的列,其他列中有数据。我想做的是将其他列按Grp w9th的值拆分,Grp值作为列标题

原始DF

>>> xx
        x1              Grp
2    3.670     8ZD (S00K49)
3    3.659     8ZD (S00K49)
4    3.576     8ZD (S00K49)
5    3.509     8ZD (S00K49)
10   3.879  MPN 603 (Pos 1)
11   3.816  MPN 603 (Pos 1)
12   3.881  MPN 603 (Pos 1)
17   3.813  MPN 604 (Pos 1)
20   3.670     8ZD (S00K49)
21   3.612     8ZD (S00K49)
36   3.774  MPN 603 (Pos 1)
37   3.752  MPN 603 (Pos 1)
38   3.667  MPN 603 (Pos 1)
39   3.717  MPN 603 (Pos 1)
40   3.730  MPN 604 (Pos 1)
41   3.771  MPN 604 (Pos 1)
42   3.621  MPN 604 (Pos 1)
预期结果:

>>> yy

     8ZD (S00K49)  MPN 603 (Pos 1) MPN 604 (Pos1) 
2    3.670         3.879           3.881    
3    3.659         3.816           3.813 
4    3.576         NaN             NaN 
5    3.509         NaN             NaN 

我在网上或文档中都找不到如何做到这一点。尝试了一些堆叠和取消堆叠的方法,但从未得到我想要的东西。任何提示都非常有用

如果按
Grp
分组,则可以添加一个“索引”,它是每个组中项目数的简单累积计数:

In [18]: df['index'] = df.groupby(['Grp']).cumcount()

In [19]: df
Out[19]: 
       x1              Grp  index
2   3.670     8ZD (S00K49)      0
3   3.659     8ZD (S00K49)      1
4   3.576     8ZD (S00K49)      2
5   3.509     8ZD (S00K49)      3
10  3.879  MPN 603 (Pos 1)      0
11  3.816  MPN 603 (Pos 1)      1
12  3.881  MPN 603 (Pos 1)      2
17  3.813  MPN 604 (Pos 1)      0
20  3.670     8ZD (S00K49)      4
21  3.612     8ZD (S00K49)      5
36  3.774  MPN 603 (Pos 1)      3
37  3.752  MPN 603 (Pos 1)      4
38  3.667  MPN 603 (Pos 1)      5
39  3.717  MPN 603 (Pos 1)      6
40  3.730  MPN 604 (Pos 1)      1
41  3.771  MPN 604 (Pos 1)      2
42  3.621  MPN 604 (Pos 1)      3

In [23]: result = df.pivot(index='index', 
                           columns='Grp', values='x1')
屈服

In[24]: result
Out[24]:
Grp    8ZD (S00K49)  MPN 603 (Pos 1)  MPN 604 (Pos 1)
index                                                
0             3.670            3.879            3.813
1             3.659            3.816            3.730
2             3.576            3.881            3.771
3             3.509            3.774            3.621
4             3.670            3.752              NaN
5             3.612            3.667              NaN
6               NaN            3.717              NaN