设置.to_excel后用熊猫设置列格式不起作用

问题描述 投票:0回答:1

我有一个数据框(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?

谢谢!

python-3.x pandas format export-to-excel
1个回答
0
投票

我已从此链接(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。有什么主意吗?

© www.soinside.com 2019 - 2024. All rights reserved.