python/pandas样式柱标题



我想在将数据框导出到Excel之前突出显示特定的列标题。

我尝试使用Pandas Styler突出显示指定的列。

cm = sns.light_palette("green", as_cmap = True)
etc = etc.style.background_gradient(cmap=cm)

我从这个基本代码开始,以突出显示我的整个数据框架,希望调整和完善我的选择。但是,即使使用这种广泛的方法,并非所有值都会突出显示。所需的结果是仅突出显示列标题,如果不可能,则只有与特定标头关联的数据。

这是基于xlsxwriter的文档的答案:

首先创建xlsxwriter对象并将数据框架写入其。header=False意味着我们不编写列名称,而startrow=1在顶部留有空白行(我们可以在其中放置自定义列(。然后,我们获得了workbookworksheet的相关对象。

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})

假设您有三列ABC,但只想突出显示AC。我们列出要突出显示的列名的列表,并选择性地将格式应用于它们:

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()

最新更新