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

Change date format for an index in python from yyyy-dd-mm to yyyy-mm-dd

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

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

搜索答案后,它将更改为 str,我将不得不将其更改回来。问题是,当列是索引时,我还没有看到有人这样做。

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

谢谢

a格式yyyy-dd-mm表示数据类型为字符串;你可以像

这样解析 to datetime and set index
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"))