首页 > 解决方案 > 每小时 to_period 忽略 24 小时格式

问题描述

示例字符串:

11/8/2017 3:00:00 PM

哪个在数据框列中sales['Checkin']

转换代码:

pd.to_datetime(sales['Checkin'], format = "%m/%d/%Y %H:%M:%S %p").dt.to_period('H')

这导致:

2017-11-08 03:00

因此忽略了 PM ......我期待正确的结果:

2017-11-08 15:00

我测试了它,它似乎是一个问题,to_datetime而不是to_period,但我不确定我错过了什么,因为我用谷歌搜索并注意到我使用%H正确,而不是%I12 小时格式......

标签: python-3.xpandas

解决方案


您必须使用%I而不是%H

In [11]: pd.to_datetime(s, format = "%m/%d/%Y %I:%M:%S %p").dt.to_period('H')
Out[11]:
0   2017-11-08 15:00
dtype: object

日期时间格式文档

%H  Hour (24-hour clock) as a zero-padded decimal number.    
%I  Hour (12-hour clock) as a zero-padded decimal number.

推荐阅读