Python 为什么此datetime字符串不能转换为数据帧中的datetime对象?

Python 为什么此datetime字符串不能转换为数据帧中的datetime对象?,python,datetime,pandas,Python,Datetime,Pandas,我正在尝试将数据帧中的列从对象转换为日期时间64[ns]。我正在使用来完成此任务,但在代码末尾,该列仍然是一个对象 import pandas as pd from StringIO import StringIO DATA = StringIO("""id;Date of Event 3574;2015-12-12 22:03:28Z 0657;2015-08-25 17:48:03Z 0408;2015-10-13 12:01:32Z 3043;2015-09-08 16:55:43Z 9

我正在尝试将数据帧中的列从
对象
转换为
日期时间64[ns]
。我正在使用来完成此任务,但在代码末尾,该列仍然是一个
对象

import pandas as pd
from StringIO import StringIO

DATA = StringIO("""id;Date of Event
3574;2015-12-12 22:03:28Z
0657;2015-08-25 17:48:03Z
0408;2015-10-13 12:01:32Z
3043;2015-09-08 16:55:43Z
9397;2015-09-09 09:33:31Z
9291;2015-07-15 08:13:48Z
4263;2015-12-30 09:25:55Z
0200;2015-10-25 13:38:35Z
8576;2015-09-01 02:01:47Z
6023;2015-08-29 20:47:20Z
9975;2015-10-05 15:11:32Z
5202;2015-12-21 23:44:10Z
9278;2015-12-22 05:56:03Z
8520;2015-09-05 01:27:07Z
9048;2015-08-29 18:38:26Z
9624;2015-12-09 01:49:15Z
2659;2015-10-03 01:43:50Z
6230;2015-10-16 11:43:40Z
2272;2015-11-18 14:15:52Z
""")

df = pd.DataFrame.from_csv(DATA, sep=";")
pd.to_datetime(df['Date of Event'], format="%Y-%m-%d %H:%M:%SZ")
print df['Date of Event'].dtype
最后的印刷品显示:

object
df.info()
返回以下内容:

Int64Index: 19 entries, 3574 to 2272
Data columns (total 1 columns):
Date of Event    19 non-null object
dtypes: object(1)
memory usage: 304.0+ bytes
为什么我的
pd.to_datetime(df['Date of Event'],format=“%Y-%m-%d%H:%m:%SZ”)
无法将列转换为
datetime
对象,我如何更正它

格式有效,我可以利用
datetime
库来测试:

>>> import datetime
>>> s = "2015-11-18 14:15:52Z"
>>> dt = datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%SZ")
>>> dt
datetime.datetime(2015, 11, 18, 14, 15, 52)
为什么转换在整个Pandas列上失败?

返回一个新结果,但它没有修改其参数。重新分配:

>>> df['Date of Event'] = pd.to_datetime(df['Date of Event'], format="%Y-%m-%d %H:%M:%SZ")
>>> df.dtypes
Date of Event    datetime64[ns] 
dtype: object
或者使用
parse_dates
并在开始时进行转换(注意,使用
read_csv
比使用
pd.DataFrame.from_csv
更常见):


您还没有将
pd.to_datetime(df['Date of Event'],format=“%Y-%m-%d%H:%m:%SZ”)分配给任何东西
@6thsense:必要时,您可以传递
Date\u解析器
函数,尽管我倾向于在需要时直接使用
to_datetime
>>> df = pd.read_csv(DATA, sep=";", parse_dates=["Date of Event"])
>>> df.dtypes
id                        int64
Date of Event    datetime64[ns]
dtype: object