繁体   English   中英

格式为 pandas.to_datetime()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM