2015-12-21 62 views
1

他們給了我已經安排像這樣數據的大數據集:重新排列數據在Python /大熊貓:打開特定列vlaues爲標題

location cost year 
1   23.15 1986 
1   23.91 1988 
1   23.31 1989 
1   23.91 1993 
1   22.98 1994 
1   23.99 1995 
1   23.71 1997 
1   23.01 1999 
2   23.21 2000 
2   24.28 2004 
2   24.4  2005 

我想重新安排這,因此它在形式:

location 1985 1986 1987 1988 
1   20.00 20.00 20.0 20.0 
2   20.00 20.00 20.0 20.0 
3   20.00 20.00 20.0 20.0 
4   20.00 20.00 20.0 20.0 
5   20.00 20.00 20.0 20.0 

(注意:忽略新的成本都是20.0我的目標是把year列到標題中的值,使每個location僅列出一次,與cost某一特定年份。位於該列中。)

有沒有簡單的方法來做到這一點?我已經調查了groupytranspose,但還沒有能夠產生任何接近我想要的東西。

預先感謝您提供的任何指示。

+0

爲什麼所有列'20.0 [0]'? – erip

+0

只是爲了舉例說明;這些值不是真實的。 – Housefrog

+1

這有點令人困惑。值得展示你所期望的真實價值。 – erip

回答

2

您需要使用pivot_table

pd.pivot_table(df, index='location', columns='year', values='cost', fill_value=0) 

與樣品:

#Out[11]: 
#year  1986 1988 1989 1993 1994 1995 1997 1999 2000 \ 
#location                 
#1   23.15 23.91 23.31 23.91 22.98 23.99 23.71 23.01 0.00 
#2   0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 23.21 

#year  2004 2005 
#location    
#1   0.00 0.0 
#2   24.28 24.4 
+0

這很有效,謝謝! – Housefrog