pandas:to_excel():如何将时间表示为TimeSeries索引的格式?

我有一个index的DataFrame:

 Index([00:00:00, 00:05:00, 00:10:00, 00:15:00, 00:20:00, 00:25:00, 00:30:00, 00:35:00, 00:40:00, 00:45:00, ... 23:10:00, 23:15:00, 23:20:00, 23:25:00, 23:30:00, 23:35:00, 23:40:00, 23:45:00, 23:50:00, 23:55:00], dtype='object', length=288) 

我把这个df写成excel如下:

 writer = pd.ExcelWriter("output.xlsx") df.set_index(index, inplace=True) df.to_excel(writer, sheet_name="Days") writer.save() 

但是,当我打开,看看Excel的内容,我看到这个:

在这里输入图像说明

该索引显示为浮点数字。

如果我格式的Excel单元格的时间,然后我看到它是这样的:

在这里输入图像说明

我不喜欢每次打开它们时手动格式化表格,所以,在创buildExcel文件时是否有表示格式的方法?

如果您使用XlsxWriter作为pandas引擎,则可以通过以下方式设置特定列的格式:

 workbook = writer.book worksheet = writer.sheets['Days'] timeFormat = workbook.add_format({'num_format': 'h:mm:ss'}) worksheet.set_column('A:A', None, timeFormat) 

资源

你可以使用pandas.ExcelWriter()函数的datetime_format参数来实现,但是你需要首先把你的索引pandas.ExcelWriter()datetimetypes:

 In [104]: df Out[104]: val 00:00:00 4 00:05:00 9 00:10:00 7 00:15:00 7 00:20:00 7 00:25:00 0 00:30:00 7 00:35:00 4 00:40:00 3 00:45:00 1 In [105]: df.index = pd.to_datetime(df.index, format='%H:%M:%S') In [106]: df Out[106]: val 1900-01-01 00:00:00 4 1900-01-01 00:05:00 9 1900-01-01 00:10:00 7 1900-01-01 00:15:00 7 1900-01-01 00:20:00 7 1900-01-01 00:25:00 0 1900-01-01 00:30:00 7 1900-01-01 00:35:00 4 1900-01-01 00:40:00 3 1900-01-01 00:45:00 1 In [107]: writer = pd.ExcelWriter("d:/temp/output.xlsx", datetime_format='hh:mm:ss') In [108]: df.to_excel(writer) In [109]: writer.save() 

如果您不想更改索引,则可以在写入Excel文件时“实时”完成,从而保留原始索引:

 df.set_index(pd.to_datetime(df.index, format='%H:%M:%S')).to_excel(writer) 

生成的Excel文件:

在这里输入图像说明

Interesting Posts