2014-01-09 29 views
9

如果我在DataFrame我知道用type有日期時間指數,我得到:如何測試對象是否爲熊貓日期時間索引?

In [17]: type(df.index) 
Out[17]: pandas.tseries.index.DatetimeIndex 

但是當我測試它,我得到:

In [18]: type(df.index) == 'pandas.tseries.index.DatetimeIndex' 
Out[18]: False 

我知道我假設的類型類型是一個字符串,但我真的不知道還有什麼要嘗試,搜索沒有結果。

回答

14

可以使用DatetimeIndex類的isinstance

In [11]: dates = pd.date_range('20130101', periods=6) 

In [12]: dates 
Out[12]: 
<class 'pandas.tseries.index.DatetimeIndex'> 
[2013-01-01 00:00:00, ..., 2013-01-06 00:00:00] 
Length: 6, Freq: D, Timezone: None 

In [13]: isinstance(dates, pd.DatetimeIndex) 
Out[13]: True 
+4

我想,自從問這個問題以來,我已經走過了很長一段路......( - : – piRSquared

5

你是如何導入熊貓的?

如果你正在跟蹤文檔中的引導和不喜歡的東西:

import pandas as pd 
dates = pd.date_range('20130101', periods=6) 

type(dates[0]) 
pandas.tslib.TimestampTimestamp('2013-01-01 00:00:00', tz=None) 

type(dates[0]) == pandas.tslib.Timestamp 
False 
# this throws NameError since you didn't import as pandas 

type(dates[0]) == pd.tslib.Timestamp 
True 
# this works because we imported Pandas as pd 

出於習慣我忘了提及爲@ M4rtini強調說,你不應該使用字符串比較均等。

+1

的解決方案是無法比擬對一個字符串,但對象 – M4rtini

+0

謝謝。我有2點失敗。字符串位我知道,但不知道還有什麼要嘗試考慮我試圖對pandas.tseries.index.DatetimeIndex進行測試。測試pd.tseries.index.DatetimeIndex是我如何導入它,做了詭計。 – piRSquared

+4

這並不檢查日期是否是DatetimeIndex,只是x [0]是時間戳...它可以是列表或系列等,第0項是時間戳。 –

3
In [102]: type("asd") == str 
Out[102]: True 

In [103]: type("asd") == "str" 
Out[103]: False 

與對象比較,不是字符串。

相關問題