转换日期列时字符串格式错误

问题描述

我正在尝试转换名为 df['CO date'] 的日期列,该列以这种格式显示 3/02/21 表示日期/月/年,当我解析它然后将它传递给字符串,就像这样。

df['CO date'] = pd.to_datetime(df['CO date']).dt.strftime("%d/%m/%y")

出于某种原因,在我将日期时间转换为显示格式的字符串后,它以美国格式返回我的日期,例如 02/03/21 ,我不明白为什么会发生这种情况,唯一的我能想到的是,Python 只有字符串格式 %d,它显示日期为 01,02,03,04 等,其中我的 df 上的日期最初是“3”天(非填充零)。

有人知道我该如何解决这个问题吗?

非常感谢

解决方法

您的格式看起来正确。获得该结果的唯一方法是您的数据框包含错误或损坏的数据。您可以通过以下方式进行完整性检查:

pd.to_datetime("2021-03-02").strftime("%d/%m/%y")
>>>
'02/03/21'

我认为您在 pd.to_datetime(df['CO date']) 部分的开头使用了错误的格式进行转换。如果您知道确切的格式,您应该在 format 中使用 pd.to_datetime,例如:

pd.to_datetime("2021-02-03",format="%Y-%d-%m").strftime("%d/%m/%y")
>>>
'02/03/21'