将字符串解析为日期时间,同时在熊猫中考虑 AM/PM
Posted
技术标签:
【中文标题】将字符串解析为日期时间,同时在熊猫中考虑 AM/PM【英文标题】:Parsing string to datetime while accounting for AM/PM in pandas 【发布时间】:2018-12-16 13:21:59 【问题描述】:我正在尝试解析这种格式的字符串"2018 - 07 - 07 04 - AM"
使用 strftime 格式转换为 pandas 日期时间。但是,在我看来,该格式无法识别 AM
和 PM
之间的区别。
这是我尝试过的:
pd.to_datetime("2018 - 07 - 07 04 - PM", format='%Y - %m - %d %H - %p').timestamp()
Out[4]: 1530936000.0
pd.to_datetime("2018 - 07 - 07 04 - AM", format='%Y - %m - %d %H - %p').timestamp()
Out[5]: 1530936000.0
注意上述两个字符串中的AM
和PM
是如何不同的,但返回的timeStamp 相同。
熊猫版本:0.23.3
Python 版本:3.5.4
【问题讨论】:
【参考方案1】:就我而言,我在尝试建议的解决方案时收到了一条错误消息:
ValueError: unconverted data remains: PM
通过将语言环境设置为 en_US
解决了这个问题。
【讨论】:
【参考方案2】:由于您解析的是 12 小时时间格式,因此您需要 %I
而不是 %H
,否则 %p
说明符无效。
pd.to_datetime("2018 - 07 - 07 04 - PM", format='%Y - %m - %d %I - %p')
Timestamp('2018-07-07 16:00:00')
此行为记录在docs:
当与
strptime()
函数一起使用时,%p
指令仅影响 如果%I
指令用于解析小时,则输出小时字段。
【讨论】:
以上是关于将字符串解析为日期时间,同时在熊猫中考虑 AM/PM的主要内容,如果未能解决你的问题,请参考以下文章