2015-02-05 64 views
7

我有一個csv格式的表,看起來像這樣。我想調換表,以便在指標名稱列中的值是新列,如何在Pandas中旋轉數據框?

Indicator  Country   Year Value  
1    Angola   2005 6 
2    Angola   2005 13 
3    Angola   2005 10 
4    Angola   2005 11 
5    Angola   2005 5 
1    Angola   2006 3 
2    Angola   2006 2 
3    Angola   2006 7 
4    Angola   2006 3 
5    Angola   2006 6 

我想最終結果以喜歡這樣:

Country Year  1  2  3  4  5 
Angola  2005  6  13 10 11 5 
Angola  2006  3  2  7  3  6 

我已經嘗試使用一個沒有太多成功的熊貓數據框架。

print(df.pivot(columns = 'Country', 'Year', 'Indicator', values = 'Value')) 

有關如何完成此操作的任何想法?

感謝

+0

你知道* this *不是csv格式,對嗎? – alfasin

+0

@alfasin他可能會向我們展示表格數據。無論我如何猜測,如果他使用熊貓數據框,他必須已經將它解析爲某個表的某個表。 –

+0

你的數據框現在是什麼樣的?當你調用'pivot'時它會做什麼,你稱之爲「沒有太大的成功?」 –

回答

13

您可以使用pivot_table

pd.pivot_table(df, values = 'Value', index=['Country','Year'], columns = 'Indicator').reset_index() 

此輸出:

Indicator Country  Year 1 2 3 4 5 
0   Angola  2005 6 13 10 11 5 
1   Angola  2006 3 2 7 3 6 
+0

查看輸出的第一行(列名) - 爲什麼除了從指標列[右5列('1','1')')還有指標列[左列('Indicator'')] '2','3','4','5')]? – 3kstc

+0

這是索引。 – JAB

+0

謝謝 - 我試過[類似的東西](https://stackoverflow.com/questions/49185446/how-to-pivot-a-dataframe-with-pandas)但沒有運氣。 – 3kstc

0

這是一個猜測:這不是一個名爲 「.csv」 文件,而是一個熊貓數據幀進口從'.csv'。

要轉動這張表,你需要三個參數在你的Pandas「pivot」中。例如,如果 df是您的數據框:

table = df.pivot(index='Country',columns='Year',values='Value') 
print (table) 

這應該應該得到所需要的輸出。

+0

嘗試通過查看SO語法幫助 – JoshKopen

+0

thx ...第一次做出貢獻,以可讀的方式確定您的答案格式。 –

+0

所有第一次回答者都是主持人,我們在這裏幫助你學會在未來貢獻更多 – JoshKopen