2015-08-28 143 views
1

我正在寫一個程序從一個名爲quandl的網站下載數據。我遇到的問題是,當下載數據時,下載的數據幀的索引列的日期格式爲:2000-01-02 00:00:00。當我使用dates = df.index.values.tolist()時,日期以946684800000000000(這是從前的日期)的整數形式返回。有誰知道如何處理這種日期格式,並把它放到一個格式,我可以使用日期時間模塊???python數據框中的日期時間索引

+0

的D型是'datetime64 [NS]'也許,你能解釋一下你的'使用datetime with'是什麼意思你可以轉換爲Python日期時間'df.index.to_pydatetime()' – EdChum

+0

感謝您的幫助,但回答低於 – Lererferler

回答

3

如果df.indexDatetimeIndex,然後使用df.index.to_pydatetime()到日期轉換爲的datetime.datetime秒的對象陣列。 例如,

In [14]: index = pd.date_range('2000-1-1', periods=3, freq='D') 

In [15]: index 
Out[15]: DatetimeIndex(['2000-01-01', '2000-01-02', '2000-01-03'], dtype='datetime64[ns]', freq='D', tz=None) 

In [16]: index.values.tolist() 
Out[16]: [946684800000000000L, 946771200000000000L, 946857600000000000L] 

In [17]: index.to_pydatetime() 
Out[20]: 
array([datetime.datetime(2000, 1, 1, 0, 0), 
     datetime.datetime(2000, 1, 2, 0, 0), 
     datetime.datetime(2000, 1, 3, 0, 0)], dtype=object) 

請注意,這取決於你想與這些日期做什麼,它可能是更有利的是用DatetimeIndexdatetime.datetime秒的對象數組工作。


提示:這是問題的類型 - 在IPython可以有很大的幫助 - 一個陌生的對象的自省。 IPython具有TAB完成屬性。在IPython的提示輸入

In [17]: index. 

,然後按TAB拉起該IPython的已檢測到的所有屬性和index對象的方法的列表。 (因爲有些對象具有自定義__getattr__方法,所以這可能不是一個完整列表,但它通常很有用。)仔細閱讀列表或對「datetime」執行文本搜索將導致您登錄index.to_datetimeindex.to_pydatetime。稍微的實驗會告訴你,index.to_pydatetime做你需要的。此外,index.to_pydatetime後輸入問號導致IPython的告訴你有用的信息,包括文檔字符串:

In [19]: index.to_pydatetime? 
Type:  instancemethod 
String form: <bound method DatetimeIndex.to_pydatetime of DatetimeIndex(['2000-01-01', '2000-01-02', '2000-01-03'], dtype='datetime64[ns]', freq='D', tz=None)> 
File:  /home/unutbu/.virtualenvs/dev/lib/python2.7/site-packages/pandas-0.16.2+175.g5a9a9da-py2.7-linux-x86_64.egg/pandas/tseries/index.py 
Definition: index.to_pydatetime() 
Docstring: 
Return DatetimeIndex as object ndarray of datetime.datetime objects 

Returns 
------- 
datetimes : ndarray 
+0

這是完美的,非常感謝你 – Lererferler

相關問題