在将数据框导出到excel之前,我想突出显示特定的列标题。
我尝试使用Pandas Styler突出显示指定的列。
cm = sns.light_palette("green", as_cmap = True)
etc = etc.style.background_gradient(cmap=cm)
我从此基本代码开始,突出显示了整个数据框,以期希望调整和完善我的选择。但是,即使使用这种广泛的方法,也不会突出显示所有值。期望的结果是仅突出显示列标题,如果不可能,则仅突出显示与特定标题关联的数据。
答案 0 :(得分:1)
以下是根据xlsxwriter
的文档给出的答案:
首先创建一个xlsxwriter
对象并将数据帧写入其中。 header=False
表示我们不写列名,而startrow=1
在顶部保留空白行(可以在其中放置自定义列)。然后我们获得workbook
和worksheet
的相关对象。
writer = pd.ExcelWriter("output.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
我们创建标题格式:
header_format = workbook.add_format({
'bold': True,
'text_wrap': True,
'valign': 'top',
'fg_color': '#D7E4BC',
'border': 1})
假设您有三列A
,B
和C
,但只想突出显示A
和C
。我们列出了要突出显示的列名称,并有选择地对其应用格式:
columns_to_highlight = ['A', 'C']
for col_num, col_name in enumerate(df.columns.values):
if col_name in columns_to_highlight:
worksheet.write(0, col_num + 1, col_name, header_format)
else:
worksheet.write(0, col_num + 1, col_name)
writer.save()