将数据框日期列的 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