熊猫:无法将日期时间 YYYY-mm-dd 转换为 dd-mm-YYYY
Posted
技术标签:
【中文标题】熊猫:无法将日期时间 YYYY-mm-dd 转换为 dd-mm-YYYY【英文标题】:Pandas: can't convert datetime YYYY-mm-dd to dd-mm-YYYY 【发布时间】:2019-02-16 21:05:55 【问题描述】:我有一个带有日期列的 pandas 数据框(datetime64[ns] 格式) 日期列为 yyyy-mm-dd(如 2018-09-12)。我想转换它 到 dd-mm-yyyy 但我尝试的方法似乎不起作用:
pd.to_datetime(df['date'], format='%d-%m-%Y')
0 2018-09-12
1 2018-09-12
编辑:添加示例 df
df.head(3)
date nr
0 2018-09-12 144
1 2018-09-12 37
2 2018-09-12 28
df.info()
date datetime64[ns]
nr int
“日期”不包含任何 Nan 或 Nat
【问题讨论】:
很遗憾,示例不完整,因此我们无法对其进行测试。但是,to_datetime
的 format
参数用于指定用于解析的格式,而不是用于打印解析的 datetime 实例的格式。
你能解释一下你需要什么来完成这个例子吗?我需要添加数据框的示例吗?
没有人知道你原来的 df
或 df['date']
的样子。我们只能猜测。
【参考方案1】:
日期被列为 yyyy-mm-dd(如 2018-09-12)。
是的,但这不是它们的存储方式。您看到的是datetime
对象的特定字符串表示。在内部,datetime
的值为stored as integers。
我想将其转换为 dd-mm-yyyy 但我尝试的似乎没有 作品
正确,因为 pd.to_datetime
转换为 datetime
对象。您需要将您的系列转换为一系列字符串,这些字符串将具有 object
dtype:
df['date'] = df['date'].dt.strftime('%d-%m-%Y')
【讨论】:
【参考方案2】:您需要将使用to_datetime
解析的日期转换为所需表示形式的字符串。您现在看到的显示格式是用于Datetime
对象的默认格式:
In [10]: frame = 'date': ['2018-09-12', '2016-10-02']
In [11]: pd.to_datetime(frame['date']).strftime('%d-%m-%Y')
Out[11]: Index(['12-09-2018', '02-10-2016'], dtype='object')
【讨论】:
以上是关于熊猫:无法将日期时间 YYYY-mm-dd 转换为 dd-mm-YYYY的主要内容,如果未能解决你的问题,请参考以下文章