python-3.x - 每小时 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
正确,而不是%I
12 小时格式......
解决方案
您必须使用%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.
推荐阅读
- javascript - 将 JS 对象推送到数组覆盖现有对象
- git - 格瑞特![远程拒绝] HEAD -> refs/for/dev (branch dev not found) 错误:未能将一些 refs 推送到“项目”
- laravel - BindingResolutionException 目标类 [hash] 部署后不存在
- reactjs - React - 我可以使用不同类型的数据设置状态吗?
- git - gitlab 提交线程在条件下自动创建
- angular - 使用对象数组和 *ngFor 动态添加 Angular 组件
- jquery - 如何使用 jquery table2Excel 或 tableHTMLExport.js 将 html 表的不同页面中的所有数据显示为 excel?
- outlook - 如何使用 OfficeJS 或 Graph API 在 Outlook 中获取分发列表(而不是组)及其成员?
- mysql - 在 mysql 中创建表和数据库时出现错误 1064 (42000)
- c# - 通过 C# 中的 Microsoft Graph API 更新用户的登录电子邮件地址