正如问题所说,我有一系列字符串,如'2020-01-06T00:00:00.000Z'
.如何使用 Python 将此系列转换为datetime
?我更喜欢大熊猫的方法。如果没有,有什么方法可以解决此任务吗?谢谢大家。
string '2020-01-06T00:00:00.000Z'
convert to 2020-01-06 00:00:00 under datetime object
使用 Python 3.7+,这可以通过datetime.fromisoformat()
和对源字符串的一些调整来实现:
>>> from datetime import datetime
>>> datetime.fromisoformat('2020-01-06T00:00:00.000Z'[:-1] + '+00:00')
datetime.datetime(2020, 1, 6, 0, 0, tzinfo=datetime.timezone.utc)
>>>
这里有一种更Python的方式来达到相同的结果:
>>> from datetime import datetime
>>> from datetime import timezone
>>> datetime.fromisoformat('2020-01-06T00:00:00.000Z'[:-1]).astimezone(timezone.utc)
datetime.datetime(2020, 1, 6, 3, 0, tzinfo=datetime.timezone.utc)
>>>
最后,要将其格式化为%Y-%m-%d %H:%M:%S
,您可以执行以下操作:
>>> d = datetime.fromisoformat('2020-01-06T00:00:00.000Z'[:-1]).astimezone(timezone.utc)
>>> d.strftime('%Y-%m-%d %H:%M:%S')
'2020-01-06 00:00:00'
>>>
给定raw_time
列包含字符串时间。你可以这样做
pd.to_datetime(df['raw_time'])
你可以使用 python-dateutil
from dateutil import parser
parser.isoparse("2020-01-06T00:00:00.000Z")
如果你想要熊猫方法,试试这个:
sample series `s`
Out[1792]:
0 2020-01-06T00:00:00.000Z
1 2020-01-06T01:00:00.000Z
dtype: object
s_time = pd.to_datetime(s).dt.tz_localize(None)
Out[1796]:
0 2020-01-06 00:00:00
1 2020-01-06 01:00:00
dtype: datetime64[ns]