我正在寻找在数据框内转置一列,使其成为一行,同时使用另一行作为索引的方法。具体来说,我需要将ColA =='1'的所有ColB值变为RowA的值,并将ColA =='2'的所有ColB变为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

最佳答案

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

关于python - 使用另一个col作为索引将pandas col转换为一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46717954/

10-12 18:00