如果 python 中包含特定字符,如何为单元格着色?

How to color a cell in python if it contains a specific character?

我正在处理数据框(来自 excel 文件),我想格式化单元格。

DF有以下内容(例如):

a b c
234 --> 500 200 --> 500 0
234 --> 500 400 6
66 34 1

我想将包含“-->”的单元格涂成红色。有什么建议么?我知道 Pandas 有一个样式功能,但我找不到任何可以帮助我解决问题的东西。

您可以修改 color_negative_red 函数以测试是否存在子字符串 in:

def make_your_style(val):
    """
    Takes a scalar and returns a string with
    the css property `'background-color: red'` for string with -->
    """
    color = 'red' if '-->' in str(val) else ''
    return f'background-color: {color}'

df.style.applymap(make_your_style)

要写入 excel 使用:

df.style.applymap(make_your_style).to_excel(file, engine='openpyxl', index=False)

当您关心格式化 Pandas DataFrame 时,通常的过程是定义一个(或多个)样式函数,您在其中定义 CSS 属性,然后 DF.style.applymap(style_function) 这些以你的数据框。
条件格式可以在样式函数中进行(如本例所示),也可以通过过滤 DataFrame 并在结果子集上应用 style_function!

# Function that specifies CSS

def color_fill(val):
    if "-->" in val:
        styling = 'background-color: red; color:black'
    return styling 

df = df.style.applymap(color_fill)