【问题标题】:Datetime format of a Pandas dataframe column switching randomly [duplicate]Pandas数据框列的日期时间格式随机切换[重复]
【发布时间】:2021-09-27 08:57:23
【问题描述】:

我正在使用具有“日期”列的数据框。我已经使用pd.to_datetime() 将此列格式转换为 yyyy-mm-dd。但是,这种格式会在数据帧中的间歇日期切换为其他格式(例如:yyyy-dd-mm)。

Date 
2021-02-01 <----- this is 2nd Jan, 2021
2021-01-21 <----- this is 21st Jan, 2021

此外,我也尝试过使用df['Date'].dt.strftime('%y-%m-%d'),但这也没有帮助。

我要求就以下几点提供一些指导:

  1. 对于任何 Date 列,仅使用 pd.to_datetime() 并确保所有日期格式正确就足够了吗?
  2. 或者我是否需要手动明确说明日期时间格式以及 pd.to_[在此处输入图像描述][1]datetime() 功能?

【问题讨论】:

  • 你好@MrFuppes,这完美!太感谢了 !。我的程序的错误已经解决。非常感谢您的帮助!
  • 只是一个小问题:从模型稳定性的角度来看,如果我有 3 个不同的数据框,并且每个数据框都有一个日期列,那么使用“dayFirst=True”属性是否是最佳实践? .从模型稳定性的角度来看,是否建议始终使用它?
  • 这取决于您的输入。如果您从世界上通常将日期放在日期中的某个地区得到它,那么您通常可以将其设置为 True。但请注意,有些地区并非如此,例如美国。如果您想 100% 确定并收到无效日期错误,请设置特定格式,例如'%d-%m-%Y' 用于 "02-01-2021" 等输入(2021 年 1 月 2 日)。
  • 明白。非常感谢

标签: python pandas dataframe date datetime


【解决方案1】:

问题来自熊猫如何解析日期。 收到2021-02-01时不知道是2月1日还是1月2日,所以它应用默认的决策规则:当日期以年开始时,下一个字段是月,因此导致2月1日。 解析 2021-01-21 时并非如此,只有一个可能的日期,即 1 月 21 日。

查看to_datetime documentation,及其参数day_firstformat,以在可能的解析不同时强制使用给定格式

【讨论】:

  • 谢谢@Pantoofle。感谢您的回复。我将进一步参考文档。如有任何疑问,我会回复
  • 我的问题使用 dayFirst 属性得到了解决。谢谢
  • 不错!您可以将答案标记为有效,以便下一个用户可以更轻松地看到此答案对您有用
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 2018-04-13
  • 1970-01-01
  • 2020-11-24
相关资源
最近更新 更多