Skip to main content
 首页 » 编程设计

python之如何将列中的值翻转到列标题中

2025年05月04日21softidea

我有一个看起来像这样的 df:

    Id   field          value 
0   1    first_name      a 
1   1    number          123 
2   1    last_name       aa 
0   2    first_name      b 
1   2    number          456 
2   2    last_name       bb 
3   2    type            p 

每个 Id 都有不同长度的索引和大致相同的字段类型,但有些多一些少。

如何翻转 df,使字段成为列,而值位于它们的下方?

像这样:

    Id   first_name   number   last_name    type 
0   1      a          123         aa     
1   2      b          456         bb         p 

请您参考如下方法:

我想你想要set_index 和unstack:

out = df.set_index(['Id', 'field']).unstack() 
out.columns = out.columns.get_level_values(1) 
out.reset_index() 

field  Id first_name last_name number type 
0       1          a        aa    123  NaN 
1       2          b        bb    456    p