2017-06-21 73 views
0

我有下面的數據框,並希望將列第aftr第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 
+0

這將是很高興看到你目前在你的代碼,你想轉置的實現是。你能補充一點嗎? –

+0

@EastonBornemeier我檢查過的帖子:https://stackoverflow.com/questions/42292986/how-to-transpose-specific-columns-into-rows-in-pandas-associate-other-column-val,但它給錯誤對於我... – Plinus

回答

3

使用melt

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

舊版本的熊貓:

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 
+0

謝謝,但得到錯誤:AttributeError:'DataFrame'對象沒有屬性'熔化',使用2.7 python – Plinus

+0

YOu使用舊版本upgarde或pd.melt(df,id_vars = ['country', 'year','perc']) –

+0

非常感謝......工作正常......行..我會升級到最新的 – Plinus