You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Pandas Style为df1中含df3字符串的文本设置字体颜色?

实现Pandas DataFrame指定文本的字体颜色高亮

我来帮你搞定这个需求——给df1列中包含df3里指定字符串的文本设置字体颜色。下面是完整的可运行代码,以及关键步骤的解释:

完整代码示例

import pandas as pd

# 初始化你的数据集
df1 = [ "i like to shop at store a." , "he likes to shop at the store b.", "she is happy to shop at store c.", 'we want to shop at the store d.']
df2 = [ "store a", "store b", "store c", 'store d' ]
df3 = [ "like to", "likes to shop", "at store" ]
myDataSet = list(zip(df1,df2))
df = pd.DataFrame(data = myDataSet, columns=['df1', 'df2'])

# 定义样式函数:匹配到df3关键词则修改字体颜色
def highlight_matched_text(text):
    # 遍历df3中的每个关键词
    for keyword in df3:
        if keyword in text:
            # 返回CSS样式,这里设置为红色,你可以改成其他颜色比如#ff0000
            return 'color: red'
    # 没有匹配到则返回空样式
    return ''

# 将样式应用到df1列
styled_df = df.style.applymap(highlight_matched_text, subset=['df1'])

# 展示结果(在Jupyter环境中会直接渲染样式)
styled_df

关键细节说明

  • 样式函数highlight_matched_text:接收每个单元格的文本内容,遍历df3中的所有关键词,只要文本包含任意一个关键词,就返回对应的CSS颜色样式。
  • applymap方法:针对DataFrame的每个单元格应用样式函数,通过subset=['df1']指定只对df1列生效,避免影响其他列。
  • 颜色自定义:你可以把'color: red'改成任意合法的CSS颜色值,比如十六进制色码'color: #2ecc71'(绿色)或者颜色名称'color: blue'

如果需要同时给不同关键词设置不同颜色,或者给匹配的关键词单独加背景色,还可以扩展这个函数,比如用字典映射关键词和样式,再通过HTML标签包裹匹配内容(需要开启escape=False),有需要的话可以随时调整~

内容的提问来源于stack exchange,提问作者Steve DEU

火山引擎 最新活动