2015-07-20 98 views
1

我使用Python的Pandas從Yahoo Finance獲得一些財務數據,這是pandas_datareader的內置功能。我想訪問它打印出的日期,但它似乎並沒有在列,也不在我需要,但JSON是那裏當我打印出來的對象:如何訪問Pandas的DataReader中的日期行?

from pandas_datareader.data import DataReader 
import datetime 

start = datetime.datetime(2015, 6, 1) 
goog = DataReader('GOOGL', 'yahoo', start) 
goog.to_json(None, orient="records") # this doesn't include dates! 
print(goog) # this prints out the dates along with the other data! 
print(goog.columns) # prints every column except the date column 

我怎麼能包括沿日期與JSON字符串中的其他數據?

回答

1

熊貓數據框有一個用於分組和快速查找的索引。該索引不被視爲其中一列。要將索引中的日期從索引移動到列,可以使用reset_index(),這將使Date成爲一列,並使索引只是從0開始計數的一系列數字。

因此,要導出爲包含日期的JSON:

goog.reset_index().to_json(None, orient='records', date_format='iso') 
2

list(goog.index)爲您提供日期列表的時間戳。

爲了在json中獲取日期,我快速瀏覽了docs。試試這個:

print goog.to_json(orient="index", date_format='iso') 
+0

有沒有一種優雅的方式來合併列表與數據的重置,所以我可以更容易地導出到JSON? – nico

+0

@ Guy3000更好? – bananafish

+0

reset_index()完全解決了我的問題,但這肯定是朝着正確方向邁出的第一步,謝謝! – nico