将数据框日期列的 dd-mm-yyyy 日期格式更改为 yyyy-mm-dd [重复]

Posted

技术标签:

【中文标题】将数据框日期列的 dd-mm-yyyy 日期格式更改为 yyyy-mm-dd [重复]【英文标题】:Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd [duplicate] 【发布时间】:2019-01-20 05:18:03 【问题描述】:

我有这个熊猫数据框df

Name      Date      Score  Score2
Joe     26-12-2007  53.45  53.4500
Joe     27-12-2007  52.38  52.7399
Joe     28-12-2007  51.71  51.8500

我想将Date 列中的日期格式从dd-mm-yyyy 转换为yyyy-mm-dd。转换后的数据框将如下所示;

Name      Date      Score  Score2
Joe     2007-12-26  53.45  53.4500
Joe     2007-12-27  52.38  52.7399
Joe     2007-12-28  51.71  51.8500

我正在使用 python v3.6

标记为重复的问题假定原始日期格式为yyyy-mm-dd。但是,这个问题中的原始日期格式是dd-mm-yyyy。如果我要在该问题中应用答案,则转换后的日期是错误的。 How to change the datetime format in pandas

【问题讨论】:

通常您只想更改用于显示日期时间的显示格式,每How to change the datetime format in pandas。 您不想修改基础数据。特别是你不想用.strftime('new_format') 转换成字符串然后用pd.to_datetime 转换回来。为什么?这样做有多个陷阱(某些日期可能不符合新格式、抛出异常、混合格式、混合或缺少时区等) 【参考方案1】:

使用'%Y-%m-%d'

例如:

import pandas as pd

df = pd.DataFrame("Date": ["26-12-2007", "27-12-2007", "28-12-2007"])
df["Date"] = pd.to_datetime(df["Date"]).dt.strftime('%Y-%m-%d')
print(df)

输出:

         Date
0  2007-12-26
1  2007-12-27
2  2007-12-28

【讨论】:

这会将 dtype 转换为对象。

以上是关于将数据框日期列的 dd-mm-yyyy 日期格式更改为 yyyy-mm-dd [重复]的主要内容,如果未能解决你的问题,请参考以下文章

熊猫:无法将日期时间 YYYY-mm-dd 转换为 dd-mm-YYYY

Dart - 如何将 yyyy-MM-dd 中的简单日期字符串的格式更改为 dd-MM-yyyy

如何使用熊猫更改数据框中的日期时间格式? [复制]

将字符串数据类型日期值转换为日期格式dd-mm-yyyy

如何将所有日期格式转换为日期列的时间戳?

为啥将数据导出到 Excel 时日期格式会发生变化?