我有一个数据框(df_DAX)。通过以下代码,我将其导出为单元格格式为“### 0.00”的xlsx文件。
> writer = pd.ExcelWriter('DATABASE.xlsx',
> engine='xlsxwriter',
> options={'strings_to_numbers': True},
> date_format='dd/mm/yyyy',
> datetime_format='dd/mm/yyyy')
> df_DAX.to_excel(writer, sheet_name='DAX', index=False)
> format1 = workbook.add_format({'num_format': '# ##0.00'})
> writer.sheets['DAX'].set_column('B2:J2', None, format1)
> writer.save()
到此为止,一切正常。 xlsx文件中的{'num_format':'### 0.00'}是尊敬的。
然后我使用pd.read_excel读取文件。我将数据框保存在以下变量中:df_import_DAX。然后,将另一个数据帧附加到此数据帧,并得到我的最后一个数据帧(这是更新的df:df_DAX):
writer_DB = pd.ExcelWriter('DATABASE.xlsx',
engine='xlsxwriter',
options={'strings_to_numbers': True},
date_format='dd/mm/yyyy',
datetime_format='dd/mm/yyyy')
df_import_DAX = pd.read_excel('DATABASE.xlsx', sheet_name='DAX')
df_DAX = df_DAX.append(df_import_DAX, sort=False, ignore_index=True)
df_DAX = df_DAX.apply(pd.to_numeric, errors='ignore')
df_DAX['Date'] = pd.to_datetime(df_DAX['Date'])
df_DAX.to_excel(writer_DB, sheet_name='DAX', index=False)
format2 = workbook.add_format({'num_format': '# ##0.00'})
writer_DB.sheets['DAX'].set_column('B2:J2', None, format2)
writer_DB.save()
当我打开新的xlsx文件时,我拥有所有值(在append函数之后),但是格式{'num_format':'### 0.00'}是不尊重。
所以我的问题是:我做错了什么?如何将格式编号设置为### 0.00?
谢谢!
我已从此链接(https://xlsxwriter.readthedocs.io/example_pandas_column_formats.html)中阅读以下声明:
# 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.
因此,解决方案可能是导入数据框,删除格式,重新格式化数据框并将其导出到excel。有什么主意吗?