格式化pandas数据帧索引日期

时间:2017-02-12 07:48:18

标签: python pandas datetime

我有一个从下面的代码中获得的数据框,但我无法将date索引转换为dd / mm / yyyy

df= pandas.read_html(base_url, header=0, index_col='Date', parse_dates=True)[0]
df.index = pandas.to_datetime(df.index, dayfirst=True)

这是结果

            Col1  Col2   
Date                                          
2017-02-10  val1  val1  
2017-02-09  val2  val2  
2017-02-08  val3  val3  
2017-02-07  val4  val4  

我已经厌倦了我在stackoverflow上搜索的其他几个不同的变体,但是我无法找到有效的组合。

它仍会将date打印为yyyy-mm-dd

1 个答案:

答案 0 :(得分:5)

如果需要DatetimeIndex则问题很严重,因为yyyy-mm-dddatespandas的默认显示格式。

如果DatetimeIndex.strftime需要string索引:

df.index = df.index.strftime('%d/%m/%Y')
print (df)
            Col1  Col2
10/02/2017  val1  val1
09/02/2017  val2  val2
08/02/2017  val3  val3
07/02/2017  val4  val4

print (type(df.index[0]))
<class 'str'>

不幸的是,这不起作用 - docs

with pd.option_context('display.date_dayfirst', True):
    print (df)

            Col1  Col2
Date                  
2017-02-10  val1  val1
2017-02-09  val2  val2
2017-02-08  val3  val3
2017-02-07  val4  val4