Skip to main content
 首页 » 编程设计

python之如何使用 pandas 将 Series 重新排列为 DataFrame

2025年05月04日12shihaiming

我有一个系列如下:

In [37]: ser 
Out[37]:  
Aa    0 
Ab    1 
Ac    2 
Ba    3 
Bb    4 
Bc    5 
Ca    6 
Cb    7 
Cc    8 
dtype: int3 

我想将其重新排列为 DataFrame 如下:

   a  b  c 
A  0  1  2 
B  3  4  5  
C  6  7  8 

这是我尝试过的失败的方法:

In [38]: ser.groupby(lambda i: i[0]).apply(lambda x: x.rename({i: i[1] for i in x.index}).to_frame()) 
Out[38]:  
      A   B   C 
A a   0 NaN NaN 
  b   1 NaN NaN 
  c   2 NaN NaN 
B a NaN   3 NaN 
  b NaN   4 NaN 
  c NaN   5 NaN 
C a NaN NaN   6 
  b NaN NaN   7 
  c NaN NaN   8 

编辑 我发现了以下关闭结果:

In [50]: ser.groupby(lambda i: i[0]).apply(lambda x: x.rename({i: i[1] for i in x.index}).to_frame().transpose()) 
Out[50]:  
     a  b  c 
A A  0  1  2 
B B  3  4  5 
C C  6  7  8 

但是,它有一个MultiIndex。

请您参考如下方法:

给你:

ser.groupby(lambda i: i[0]).apply(lambda x: x.rename({i: i[1] for i in x.index})).unstack() 

你很接近!