python - 熊猫:日期时间从日期开始不正确地选择日期作为月份
问题描述
我正在处理数据框中的一些日期时间数据。格式为日/月/年 例如:
Date
----------------
27/06/2021 00:00
27/06/2021 00:00
30/06/2021 00:00
30/06/2021 00:00
30/06/2021 00:00
18/06/2021 00:00
26/06/2021 00:00
28/06/2021 00:00
28/06/2021 00:00
27/06/2021 00:00
28/06/2021 00:00
30/06/2021 00:00
12/06/2021 00:00
28/06/2021 00:00
我想提取月份和年份,所以我使用将列转换为日期时间data['date'] = pd.to_datetime(data['date'])
但是,这会导致对月份和日期的分类不正确。当上面的日期转换为日期时间时,它们最终会变成:
Date
-----------
2021-06-27
2021-06-27
2021-06-30
2021-06-30
2021-06-30
2021-06-18
2021-06-26
2021-06-28
2021-06-28
2021-06-27
2021-06-28
2021-06-30
2021-12-06
2021-06-28
所有这些日期都应该以 06 为月份。但是第 13 行错误地将 12 分配为月份,这导致我稍后使用 groupby 时结果不正确。有没有办法解决这个问题?
解决方案
采用
pd.to_datetime(data['date'], dayfirst=True)
因为这一天显然在您的数据中排在第一位,但熊猫默认假定月份排在第一位。
docs - “ dayfirst : bool, 默认 False ”
注意:第一天/最后一天的评估并不严格,即逐行评估 - 这就是为什么你得到如此混合的结果但没有错误的原因。
推荐阅读
- javascript - Typescript e6 中的 Array.groupBy 可以与箭头函数一起使用
- java - gdb 在 python + pybind11 段错误上显示 java?
- kubernetes - 为 Kubernetes 中的 Keycloak 指定重定向和内部查找的备用 URL
- api - Flutter 使聊天屏幕出现在 api 中获取或发送消息
- sql - 如何在 PostgreSQL 中获取移动窗口 argmax
- python - python删除xml文件上的注释
- r - 在 annotate() 中使用 npc 单位
- bash - Control-m 运行时变量:sh vs powershell
- javascript - Angular 5 - TypeError: Object does not support this action on IE11- PolyFills 需要支持吗?
- python - 如何让 pd.to_datetime() 采用多种日期格式?