2014-11-23 98 views
2

我有一個熊貓數據幀,不幸的是切換日期時間格式來源:如何分析多個大熊貓日期時間格式

first part of pandas dataframe with one DT format

到:

second part of pandas dataframe with another DT format

我需要解析DF [」 DT']轉換爲日期時間,然後是日期時間索引。它似乎工作,但隨後保持兩種類型的日期時間的:

df['Datetime'] = pd.to_datetime(df['DT']) 
df = df.set_index('Datetime') 
del df['DT'] 

dataframe datafarme

但大熊貓時間序列功能不起作用,即:

from datetime import time 
df.between_time(time(0),time(8,59,59)) 

拋出錯誤: TypeError:索引必須是DatetimeIndex。

我會爲此想知道如何將這兩種不同的日期時間格式解析爲單個DateTimeIndex。謝謝你的幫助!

回答

2

首先,請嘗試以下操作:

In[54]: b = '2010-10-02T24:00:00+0000' 

In[55]: pd.to_datetime(b,errors='raise') 
(... ...) 
ValueError: hour must be in 0..23 

這告訴ü該變量的日期時間格式{B}是錯誤的。所以這裏有兩個選擇。第一個是糾正STR格式(修改「24」到「00」),然後應用{pd.to_datetime} FUNC:

In[56]: df 
Out[56]: 
           0 
0 11/23/2014 01:37:00 AM +0000 
1  2010-10-02T00:00:00+0000 

In[57]: pd.to_datetime(df[0]) 
Out[57]: 
0 2014-11-23 01:37:00 
1 2010-10-02 00:00:00 
Name: 0, dtype: datetime64[ns] 

第二個是指定{PD內的格式。 to_datetime} func,以便它可以識別你的特殊格式(如果你想在這種情況下保留你的時間信息,這不是非常簡單)

+0

感謝您的迴應。我其實並沒有注意到第二個日期時間格式非常不合格。考慮到我有大約370,000行的好數據,我認爲最簡單的方法是刪除不合格的行,因爲它們構成的數據少於1%。問題然後消失! – user3654387 2014-11-23 21:28:08

+0

np。請幫助投票我的答案然後:) – leo 2014-11-24 01:55:58