Skip to main content
 首页 » 编程设计

python之将 pandas 列转置为一行,使用另一列作为索引

2025年05月04日15bjzhanghao

我想转置数据框中的一列,使其成为一行,同时使用另一行作为索引。具体来说,我需要所有 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 

请您参考如下方法:

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