Python 将包含字母的字符串转换为日期时间

Python 将包含字母的字符串转换为日期时间,python,pandas,datetime,Python,Pandas,Datetime,我得到一个字符串,看起来像: 2012-10-01 13:00:00 +0000 UTC 我想用python把它改成DateTime格式,我已经试过了 data['dt']=pd.to_datetime(data['dt']) 并得到以下错误: 1- TypeError: Unrecognized value type: <class 'str'> 2- ValueError: Unknown string format 我建议: import time pd.to_date

我得到一个字符串,看起来像:

2012-10-01 13:00:00 +0000 UTC
我想用python把它改成DateTime格式,我已经试过了

data['dt']=pd.to_datetime(data['dt'])
并得到以下错误:

1- TypeError: Unrecognized value type: <class 'str'>

2- ValueError: Unknown string format

我建议:

import time
pd.to_datetime(time.strptime('2012-10-01 13:00:00 +0000 UTC', '%Y-%m-%d %H:%M:%S %z %Z'))

所有日期时间都是UTC时间吗?如果是,您可以使用:
data['dt']=pd.to_datetime(data['dt'].str.rsplit(None,1.str[0]).dt.tz_localize('UTC'))
使格式匹配。。。到底是什么把你绊倒了?请参见
%Z
中的
%Y-%m-%d%H:%m:%S+%f%Z'
会更好。@MaxU谢谢,我的目光掠过
f
并直奔硬编码的UTC!您不应该建议这样做,它不适用于字符串列。这可能适用于标量值,但如果我们尝试将其应用于长向量(DF的列),速度会非常慢。。。
data['dt']=pd.to_datetime(data['dt'], format = '%Y-%m-%d %H:%M:%S +%f %Z')
import time
pd.to_datetime(time.strptime('2012-10-01 13:00:00 +0000 UTC', '%Y-%m-%d %H:%M:%S %z %Z'))