我有一个pandas数据帧,遗憾的是从以下地址切换日期时间格式:
为:
我需要将df ['DT']解析为Datetime,然后解析DatetimeIndex。它似乎有效,但随后保留了两种类型的日期时间:
df['Datetime'] = pd.to_datetime(df['DT'])
df = df.set_index('Datetime')
del df['DT']
但是大熊猫的时间序列功能不起作用,即:
from datetime import time
df.between_time(time(0),time(8,59,59))
引发错误:TypeError:Index必须是DatetimeIndex。
我希望知道如何将这两种不同的Datetime格式解析为单个DateTimeIndex。谢谢你的帮助!
答案 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格式(如果你想在这种情况下保留你的时间信息,这不是很简单)