2014-11-23 153 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