You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于另一DataFrame列的值高亮目标DataFrame的行或字符串

Pandas匹配DataFrame数据并高亮行/单元格

下面提供两种简单可行的实现方式,你可以根据需求选择:

方法1:高亮匹配的整行

这种方式能直观展示所有匹配到的基因对应的完整数据行,代码实现简单:

import pandas as pd

# 初始化数据集
dataset1 = {'Gene Name':['ampC','fliC','ompC','fruB','yobH','gltP','ruvA','yacC','folD'],
       'FoldChange':['4.54','5.65','7.89','6.45','10.67','4.63','2.65','9.45','5.79'],
        'pvalue':['0','0','0','0','0','0','0','0','0']}
df1= pd.DataFrame(dataset1)

dataset2 = {'Gene Name':['gltP','ruvA','yacC','folD']}
df2 = pd.DataFrame(dataset2)

# 获取需要匹配的基因列表
target_genes = df2['Gene Name'].tolist()

# 定义高亮整行的规则
def highlight_matching_rows(row):
    # 匹配到目标基因时,给整行设置浅黄色背景
    return ['background-color: #fff2cc'] * len(row) if row['Gene Name'] in target_genes else [''] * len(row)

# 应用样式并展示(Jupyter环境中直接运行即可看到效果)
styled_df = df1.style.apply(highlight_matching_rows, axis=1)
styled_df

# 若需导出为可查看的HTML文件,执行以下代码
# styled_df.to_html('highlighted_gene_table.html')

方法2:仅高亮匹配的Gene Name单元格

如果只需要突出显示匹配的基因名称,可针对单列设置样式:

# 定义高亮单个单元格的规则
def highlight_matching_gene(val):
    # 匹配到目标基因时,设置单元格背景色
    return 'background-color: #ffeeba' if val in target_genes else ''

# 仅对Gene Name列应用样式
styled_df = df1.style.applymap(highlight_matching_gene, subset=['Gene Name'])
styled_df

说明

  • 两种方法都基于Pandas的Styler模块实现,在Jupyter Notebook/ Lab中运行可直接看到高亮效果;
  • 颜色值可根据需求替换(比如#ffcccc对应浅红色);
  • 若要导出结果,使用to_html()方法保存为HTML文件,用浏览器打开即可查看高亮效果。

内容的提问来源于stack exchange,提问作者Melissa Arroyo-Mendoza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 10:52:15