在使用DataFrame.to_excel之后,Pandas ExcelWriter set_column无法格式化数字

我已经尝试了xlsxwriter网页上的示例代码http://xlsxwriter.readthedocs.org/en/latest/example_pandas_column_formats.html

import pandas as pd # Create a Pandas dataframe from some data. df = pd.DataFrame({'Numbers': [1010, 2020, 3030, 2020, 1515, 3030, 4545], 'Percentage': [.1, .2, .33, .25, .5, .75, .45 ], }) # Create a Pandas Excel writer using XlsxWriter as the engine. writer = pd.ExcelWriter("pandas_column_formats.xlsx", engine='xlsxwriter') # Convert the dataframe to an XlsxWriter Excel object. df.to_excel(writer, sheet_name='Sheet1') # Get the xlsxwriter workbook and worksheet objects. workbook = writer.book worksheet = writer.sheets['Sheet1'] # Add some cell formats. format1 = workbook.add_format({'num_format': '#,##0.00'}) format2 = workbook.add_format({'num_format': '0%'}) # Note: It isn't possible to format any cells that already have a format such # as the index or headers or any cells that contain dates or datetimes. # Set the column width and format. worksheet.set_column('B:B', 18, format1) # Set the format but not the column width. worksheet.set_column('C:C', None, format2) # Close the Pandas Excel writer and output the Excel file. writer.save() 

但是,它并不像预期的那样对列进行格式化 – 它们只是显示为无格式(不包括数字舍入,百分比)。

我正在使用pandas0.15.2。 有任何想法吗。 pandas也许最近变了吗?

任何想法都会受到欢迎。

这似乎是在pandas16固定。见https://github.com/jmcnamara/XlsxWriter/issues/204