如何解析多个pandas日期时间格式

时间:2014-11-23 08:01:42

标签: python datetime pandas time-series

我有一个pandas数据帧,遗憾的是从以下地址切换日期时间格式:

first part of pandas dataframe with one DT format

为:

second part of pandas dataframe with another DT format

我需要将df ['DT']解析为Datetime,然后解析DatetimeIndex。它似乎有效,但随后保留了两种类型的日期时间:

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:Index必须是DatetimeIndex。

我希望知道如何将这两种不同的Datetime格式解析为单个DateTimeIndex。谢谢你的帮助!

1 个答案:

答案 0 :(得分: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}函数:

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中指定格式,以便它可以识别你的特殊str格式(如果你想在这种情况下保留你的时间信息,这不是很简单)