我希望在数据框中转置一列,使其成为一行,同时使用另一行作为索引。具体来说,我需要所有 ColB 值,其中 ColA ==' 1' 成为 RowA 的值,并且所有 ColB ,其中 ColA ==' 2' 成为 RowB 的值。
即。我需要转:
index ColA ColB
0 1.0 1.1
1 1.0 12.2
2 1.0 4.5
3 2.0 5.1
4 2.0 7.7
5 2.0 9.5
进入......
ColB
0 1 2
ColA
1.0 1.1 12.2 4.5
2.0 5.1 7.7 9.5
------更新#1 --------
参考@Scott_Boston提供的答案:
df.groupby('ColA').apply(lambda x: x.reset_index().ColB)
似乎给了我:
ColA
1.0 0 1.1
1 12.2
2 4.5
2.0 0 5.1
1 7.7
2 9.5
答案 0 :(得分:3)
让我们使用groupby
,apply
和reset_index
:
df.groupby('ColA').apply(lambda x: x.reset_index().ColB)
输出:
ColB 0 1 2
ColA
1.0 1.1 12.2 4.5
2.0 5.1 7.7 9.5
答案 1 :(得分:3)
df.groupby('ColA').ColB.apply(list).apply(pd.Series).rename_axis('ColB',1)
Out[113]:
ColB 0 1 2
ColA
1.0 1.1 12.2 4.5
2.0 5.1 7.7 9.5