首页 > 解决方案 > 条件格式化具有不同颜色的python数据框列值

问题描述

我正在尝试根据其值对我的 df 中一列的值进行着色。我只尝试了一个值,但没有得到任何彩色结果。这是我的代码

writer = pd.ExcelWriter('resultcolored.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet')
workbook = writer.book
worksheet = writer.sheets["Sheet"]



format = workbook.add_format({'bg_color':   '#C6EFCE',
                               'font_color': '#006100'})
worksheet.conditional_format( 'AJ1:AJ10',
    {   'type': 'text',
        'criteria': 'containing',
        'value': 'Direct',
        'format': format
    }
)
writer.save()

它保存文件,但不着色任何值。你能帮帮我吗?

标签: pythonformattingxlsxwriter

解决方案


它应该按预期工作。这是一个基于您的代码的工作示例:

import pandas as pd


# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Data': ['Foo', 'Director', 'bar', 'Directory', 'Baz']})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_conditional.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Get the xlsxwriter workbook and worksheet objects.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

format = workbook.add_format({'bg_color':   '#C6EFCE',
                              'font_color': '#006100'})

# Apply a conditional format to the cell range.
worksheet.conditional_format( 'B2:B6',
    {   'type': 'text',
        'criteria': 'containing',
        'value': 'Direct',
        'format': format
    }
)

writer.save()

输出

在此处输入图像描述


推荐阅读