Python 将列转换为dataframe的标题
我有一个df(如下所示除外),它有一个名为GRP的列,其他列中有数据。我想做的是将其他列按Grp w9th的值拆分,Grp值作为列标题 原始DFPython 将列转换为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 (
>>> 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