pandas 如何将数据框列转换为熊猫中的行
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/44678829/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 03:50:50 来源:igfitidea点击:
How to transpose dataframe columns into rows in pandas
提问by Plinus
I have below dataframe and want to transpose the columns aftr 3rd column into rows. Please help on this.
我有下面的数据框,并希望将第 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
回答by Scott Boston
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