Skip to main content
 首页 » 编程设计

python之如何将数据框列转置为 Pandas 中的行

2025年05月04日15mengfanrong

我有以下数据框,想将第 3 列之后的列转置为行。请对此提供帮助。

df: 
country year    perc    data1   data2   data3 
IN      2015    hjk     75      81      96 
US      2015    KTM     100     289     632 
 
Results:                 
country year    perc    TransposedColumn    Value    
IN      2015    hjk     data1               75   
IN      2015    hjk     data2               81   
IN      2015    hjk     data3               96   
US      2015    KTM     data1               100  
US      2015    KTM     data2               289  
US      2015    KTM     data3               632  

请您参考如下方法:

使用melt:

df.melt(id_vars=['country','year','perc']) 

旧版本的 Pandas:

pd.melt(df, id_vars=['country','year','perc']) 

输出:

  country  year perc variable  value 
0      IN  2015  hjk    data1     75 
1      US  2015  KTM    data1    100 
2      IN  2015  hjk    data2     81 
3      US  2015  KTM    data2    289 
4      IN  2015  hjk    data3     96 
5      US  2015  KTM    data3    632 

选项#2

df.set_index(['country','year','perc']).stack().reset_index() 

输出:

  country  year perc level_3    0 
0      IN  2015  hjk   data1   75 
1      IN  2015  hjk   data2   81 
2      IN  2015  hjk   data3   96 
3      US  2015  KTM   data1  100 
4      US  2015  KTM   data2  289 
5      US  2015  KTM   data3  632