2017-09-24 84 views
1

我有一個系列,看起來像這樣:系列到數據幀

     Adj Close 
Date  minor 
2017-09-22 AFK  23.500000 
      ASHR  29.530001 
      ECH  49.259998 
      EGPT  28.139999 
      EIDO  26.950001 

也就是說,對於一些交易所買賣基金,我有調關閉,一天一天。

我想將其轉換爲數據幀sush爲:

   AFK   ASHR  ECH 
Date    
2017-09-22 23.500000 29.530001 49.259998 ... 
2017-09-23 ... 

我試圖與樞軸():

h.pivot(index="Date", columns = "minor") 

但我得到一個錯誤信息。

--------------------------------------------------------------------------- 
KeyError         Traceback (most recent call last) 
C:\Users\USUARIO\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance) 
    2392    try: 
-> 2393     return self._engine.get_loc(key) 
    2394    except KeyError: 


KeyError: 'Date' 

During handling of the above exception, another exception occurred: 

... 

KeyError: 'Date' 

我在做什麼錯?

回答

2

我想你需要Series.unstack,選擇通過與[]索引列,以獲得系列:

df1 = df['Adj Close'].unstack() 
print (df1) 
minor  AFK  ASHR  ECH  EGPT  EIDO 
Date               
2017-09-22 23.5 29.530001 49.259998 28.139999 26.950001 

如果想使用pivot首先reset_index創建MultiIndex列:

print (df.reset_index()) 
     Date minor Adj Close 
0 2017-09-22 AFK 23.500000 
1 2017-09-22 ASHR 29.530001 
2 2017-09-22 ECH 49.259998 
3 2017-09-22 EGPT 28.139999 
4 2017-09-22 EIDO 26.950001 

df1 = df.reset_index().pivot(index='Date', columns='minor', values='Adj Close') 
print (df1) 
minor  AFK  ASHR  ECH  EGPT  EIDO 
Date               
2017-09-22 23.5 29.530001 49.259998 28.139999 26.950001 
+0

@Bharath謝蒂 - 感謝您的編輯。 – jezrael

+1

其基於ohir sir拆箱的解決方案非常棒。 ;) – Dark