我的目标是将熊猫数据框导出到excel文件,并保持数据框的格式。 这是创建和格式化数据框的代码片段:
import pandas as pd
import os
import numpy as np
df = pd.DataFrame({'A': np.linspace(100000, 1000, 5), 'B': 'line'})
df = pd.concat([df, pd.DataFrame(np.random.randn(5, 4), columns=list('CDEF'))],axis=1)
path = os.path.join(os.path.expanduser("~"), "Desktop", "styled.xlsx")
writer = pd.ExcelWriter(path, engine='xlsxwriter')
df.to_excel(writer, sheet_name='sheet',header=True, index=False, startrow=0, startcol=0)
my_format = writer.book.add_format({'align': 'center',
'num_format': '#,##0.00',
'bg_color': '#FFFFFF',
'fg_color': '#000000'})
for col in (0, 6):
writer.sheets['sheet'].set_column(col, col, None, my_format)
writer.save()
这是Jupyter笔记本中的数据框(这正是我想要在Excel工作表中看到的数据): Dataframe with float formatted
但这是运行上面的代码时得到的Excel文件: Excel sheet output with unformatted floats
有人可以帮助将所需格式的数据框导入Excel文件吗? 我已经尝试过使用openpyxl进行此操作,但似乎它不会格式化数据框所在的区域,而不会格式化Excel工作表的其余部分。
答案 0 :(得分:1)
我认为您可以为此使用ExcelWriter:
excel_writer = pd.ExcelWriter('/home/your_excel.xlsx', engine = 'xlsxwriter')
df.to_excel(excel_writer, index=False, sheet_name='mysheet')
book = excel_writer.book
sheet = excel_writer.sheets['mysheet']
excel_format = book.add_format({'num_format': '0.000'})
worksheet.set_column('C:C', None, excel_format) # Adds formatting to column C
excel_writer.save()