【问题标题】:Parsing string to datetime while accounting for AM/PM in pandas将字符串解析为日期时间,同时在熊猫中考虑 AM/PM
【发布时间】:2018-12-16 13:21:59
【问题描述】:

我正在尝试解析这种格式的字符串"2018 - 07 - 07 04 - AM" 使用 strftime 格式转换为 pandas 日期时间。但是,在我看来,该格式无法识别 AMPM 之间的区别。

这是我尝试过的:

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

注意上述两个字符串中的AMPM 是如何不同的,但返回的timeStamp 相同。

熊猫版本:0.23.3

Python 版本:3.5.4

【问题讨论】:

    标签: python pandas date datetime


    【解决方案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 指令用于解析小时,则输出小时字段。

      【讨论】:

        猜你喜欢
        • 2012-02-18
        • 2011-04-06
        • 1970-01-01
        • 2016-10-21
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 2017-05-20
        • 2018-01-21
        相关资源
        最近更新 更多