如果 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)
我正在处理数据框(来自 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)