将python中索引的日期格式从yyyy-dd-mm更改为yyyy-mm-dd

Posted

技术标签:

【中文标题】将python中索引的日期格式从yyyy-dd-mm更改为yyyy-mm-dd【英文标题】:Change date format for an index in python from yyyy-dd-mm to yyyy-mm-dd 【发布时间】:2021-09-29 17:27:14 【问题描述】:

我有一个索引中包含日期的数据框和另一个包含这些日期值的列。

我的索引当前是日期时间类型,并显示为 YYYY-dd-mm,我希望它显示为 YYYY-mm-dd

在搜索完答案后,它会变成一个 str,我必须把它改回来。麻烦的是,当列是索引时,我还没有看到有人这样做。

即我试过df["Date"].dt.strftime('%Y%m%d') 但这不起作用,因为“日期”不是列而是索引

谢谢

【问题讨论】:

【参考方案1】:

格式yyyy-dd-mm表示数据类型为字符串;你可以解析to datetime和set indexlike

import pandas as pd
# dummy example
df = pd.DataFrame('v': [1,2], index=['2020-13-02', '2020-14-02'])

df = df.set_index(pd.to_datetime(df.index, format='%Y-%d-%m'))

# now you have:
# df
#             v
# 2020-02-13  1
# 2020-02-14  2

请注意,这将为您提供datetime index。如果你想要字符串,使用

df = df.set_index(pd.to_datetime(df.index, format='%Y-%d-%m').strftime("%Y-%m-%d"))

【讨论】:

以上是关于将python中索引的日期格式从yyyy-dd-mm更改为yyyy-mm-dd的主要内容,如果未能解决你的问题,请参考以下文章

在python中创建日期时间索引

Python pandas数据框“日期”索引xlsx和csv中的不同格式

python df:将日期索引从毫秒转换为天

如何从 Pandas 日期时间索引中删除尾随零(根据需要格式化)?

java 字符串转换成日期

将 GMT+# 格式的日期时间转换为 GMT