[英]format at pandas.to_datetime()
我有一个 dataframe ,其日期列的字符串格式如下: 20180406T165358 。 现在我正在尝试用to_datetime()解析它。 所以我在to_datetime()的格式参数应该是format='%Y%m%dT%H%M%S'
但format='%Y-%m-%dT%H:%M:%S'
也可以。 所以我的问题是:这些特定符号“-”和“:”在解析日期中的作用是什么?
这是一个有趣的发现。 根据文档 pandas 在后端使用strptime()
和strftime()
,但它们的行为与 datetime 模块中的行为奇怪地不同。
虽然 Pandas 很乐意接受两者,但实际的datetime.datetime.strptime()
在格式的第二个版本上失败。
z = '20180406T165358'
dt.datetime.strptime(z, '%Y%m%dT%H%M%S')
Out[39]: datetime.datetime(2018, 4, 6, 16, 53, 58)
dt.datetime.strptime(z, '%Y-%m-%dT%H:%M:%S')
Traceback (most recent call last):
File "<ipython-input-40-c37caf368af3>", line 1, in <module>
dt.datetime.strptime(z, '%Y-%m-%dT%H:%M:%S')
File "C:\ProgramData\Anaconda3\lib\_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\ProgramData\Anaconda3\lib\_strptime.py", line 362, in _strptime
(data_string, format))
ValueError: time data '20180406T165358' does not match format '%Y-%m-%dT%H:%M:%S'
pd.to_datetime([z], format='%Y%m%dT%H%M%S')
Out[41]: DatetimeIndex(['2018-04-06 16:53:58'], dtype='datetime64[ns]', freq=None)
pd.to_datetime([z], format='%Y-%m-%dT%H:%M:%S')
Out[42]: DatetimeIndex(['2018-04-06 16:53:58'], dtype='datetime64[ns]', freq=None)
似乎在 pandas 中,特殊符号只是被忽略了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.