我正在尝试将这些字符串对象转换为python datetime对象,但是字母T,Z造成了问题。
datetime.strptime(i,'%Y-%m-%d').date() for i in df['dateUpdated']
0 2014-02-01T04:41:06Z
1 2013-12-11T05:28:28Z
2 2015-11-19T22:20:29Z
3 2014-02-01T05:22:01Z
4 2016-05-19T14:31:26Z
ValueError: unconverted data remains: T04:41:06Z
答案 0 :(得分:1)
假设您正在使用熊猫,请使用pd.to_datetime
:
import pandas as pd
df = pd.DataFrame({'dateUpdated': ['2014-02-01T04:41:06Z', '2013-12-11T05:28:28Z']})
df['dateUpdated'] = pd.to_datetime(df['dateUpdated'])
结果:
0 2014-02-01 04:41:06+00:00
1 2013-12-11 05:28:28+00:00
Name: dateUpdated, dtype: datetime64[ns, UTC]
如果您只想访问新列的日期部分,则可以使用:
df['dateUpdated'].dt.date
答案 1 :(得分:0)
尝试:
datetime.strptime(i,'%Y-%m-%dT%H-%M-%SZ').date() for i in df['dateUpdated']
或者,您可以从所有字符串中去除'T'和'Z'并使用更通用的格式:
datetime.strptime(i,'%Y-%m-%d %H-%M-%S').date() for i in df['dateUpdated']