简体   繁体   English

如何将数据框列转换为熊猫中的行

[英]How to transpose dataframe columns into rows in pandas

I have below dataframe and want to transpose the columns aftr 3rd column into rows. 我在下面的数据帧中,想将第3列后的列转置为行。 Please help on this. 请帮忙。

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 

use melt : 使用melt

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

older versions of Pandas: 较旧版本的Pandas:

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

Output: 输出:

  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

Option #2 选项#2

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

Output: 输出:

  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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM