如何查找pandas.Timestamp支持的完整可接受输入格式列表?
pandas.Timestamp 时间解析规则说明
pandas.Timestamp 是功能强大、解析灵活的时间处理工具,可兼容多类常见时间戳、日期时间格式,典型自动解析效果如下:
In [38]: pd.Timestamp('2020') Out[38]: Timestamp('2020-01-01 00:00:00') In [39]: pd.Timestamp('2020-02') Out[39]: Timestamp('2020-02-01 00:00:00') In [40]: pd.Timestamp('2020Q1') Out[40]: Timestamp('2020-01-01 00:00:00')
目前官方文档没有对外公布Timestamp自动解析支持的完整格式清单,其解析核心基于ISO 8601日期标准、dateutil通用解析规则,叠加pandas自定义的季度类周期格式适配。为了避免歧义引发的误解析,自动解析逻辑不会对存在多重解释可能的字符串做猜测匹配,因此部分预期可识别的输入会直接抛出解析错误:
In [41]: pd.Timestamp('202003') # expecting 2020-03-01 ValueError: could not convert string to Timestamp In [42]: pd.Timestamp('2020H2') # expecting 2020-07-01, i.e. 2020 second half (start) ValueError: could not convert string to Timestamp
针对这类无法自动解析的场景,可通过显式指定解析规则得到预期结果:
- 无分隔符的年月类字符串(如
202003):传入format参数明确字符串格式,执行pd.Timestamp('202003', format='%Y%m')即可得到2020-03-01 00:00:00的正确结果 - 半年度类自定义周期标识(如
2020H2):这类业务常用的周期标识不属于Timestamp原生识别范围,可提前做简单的字符串映射(将H1替换为Q1、H2替换为Q3),再借助pandas的周期对象解析,执行pd.Period('2020Q3', freq='2Q').start_time即可拿到2020年下半年首日的时间戳。
内容的提问来源于stack exchange,提问作者Fei Liu
相关产品推荐
相关产品推荐

