Art*_*urH 6 python excel dataframe pandas xlsxwriter
这是一次又一次被回答和重新回答的问题,因为答案会随着大熊猫的更新而不断变化。我尝试了在这里和网上其他地方找到的一些解决方案,但在当前版本的熊猫上,没有一个对我有用。有谁知道当前的 2019 年 3 月 Pandas 0.24.2 修复了删除 DataFrame 在将其转换为 Excel 工作表时为其标题提供的默认样式的问题?由于优先级问题,简单地使用 xlsxwriter 覆盖样式是行不通的。
Par*_*ait 20
考虑将标题样式属性调整为全局设置:
import pandas as pd
pd.io.formats.excel.ExcelFormatter.header_style = None
...
mydataframe.to_excel(...)
Run Code Online (Sandbox Code Playgroud)
最近的 API 更改需要稍微修改才能引用该属性:
import pandas as pd
from pandas.io.formats import excel
excel.ExcelFormatter.header_style = None
...
mydataframe.to_excel(...)
Run Code Online (Sandbox Code Playgroud)
主要基于 Xlsxwriter 文档(此处链接)中提供的示例,下面的完全可重现示例删除了 pandas 0.24.2 中的默认 pandas 标头格式。值得注意的是,在 中df.to_excel(),我正在更改header和startrow参数。
import xlsxwriter
import pandas as pd
import numpy as np
# Creating a dataframe
df = pd.DataFrame(np.random.randn(100, 3), columns=list('ABC'))
column_list = df.columns
# Create a Pandas Excel writer using XlsxWriter engine.
writer = pd.ExcelWriter("test.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False, index=False)
# Get workbook and worksheet objects
workbook = writer.book
worksheet = writer.sheets['Sheet1']
for idx, val in enumerate(column_list):
worksheet.write(0, idx, val)
writer.save()
print(pd.__version__)
Run Code Online (Sandbox Code Playgroud)
预期输出:
0.24.2
Run Code Online (Sandbox Code Playgroud)