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

如何筛选DataFrame中Ensembl值存在于Revel_Transcripts列的行?

筛选DataFrame中Ensembl值存在于对应Revel_Transcripts的行

我有一个包含多列的DataFrame,以下是相关列Revel_Transcripts和Ensembl的字典形式(截取前30行):

IGV_table[["Revel_Transcripts", "Ensembl"]].head(30).to_dict()

{'Revel_Transcripts': {0: 'ENST00000438426',
  1: 'ENST00000438426',
  2: 'ENST00000438426',
  3: 'ENST00000438426',
  4: 'ENST00000438426',
  5: 'ENST00000438426',
  6: 'ENST00000438426',
  7: 'ENST00000438426',
  8: 'ENST00000438426',
  9: 'ENST00000438426',
  10: 'ENST00000438426',
  11: 'ENST00000438426',
  12: 'ENST00000438426',
  13: 'ENST00000438426',
  14: 'ENST00000438426',
  15: 'ENST00000438426',
  16: 'ENST00000438426',
  17: 'ENST00000438426',
  18: 'ENST00000438426',
  19: 'ENST00000438426',
  20: 'ENST00000438426',
  21: 'ENST00000438426;ENST00000318560',
  22: 'ENST00000438426;ENST00000318560',
  23: 'ENST00000438426;ENST00000318560',
  24: 'ENST00000438426;ENST00000318560',
  25: 'ENST00000438426;ENST00000318560',
  26: 'ENST00000438426;ENST00000318560',
  27: 'ENST00000438426;ENST00000318560',
  28: 'ENST00000438426;ENST00000318560',
  29: 'ENST00000438426;ENST00000318560'},
 'Ensembl': {0: 'ENST00000318560',
  1: 'ENST00000318560',
  2: 'ENST00000318560',
  3: 'ENST00000318560',
  4: 'ENST00000318560',
  5: 'ENST00000318560',
  6: 'ENST00000318560',
  7: 'ENST00000318560',
  8: 'ENST00000318560',
  9: 'ENST00000318560',
  10: 'ENST00000318560',
  11: 'ENST00000318560',
  12: 'ENST00000318560',
  13: 'ENST00000318560',
  14: 'ENST00000318560',
  15: 'ENST00000318560',
  16: 'ENST00000318560',
  17: 'ENST00000318560',
  18: 'ENST00000318560',
  19: 'ENST00000318560',
  20: 'ENST00000318560',
  21: 'ENST00000318560',
  22: 'ENST00000318560',
  23: 'ENST00000318560',
  24: 'ENST00000318560',
  25: 'ENST00000318560',
  26: 'ENST00000318560',
  27: 'ENST00000318560',
  28: 'ENST00000318560',
  29: 'ENST00000318560'}}

需求

保留Ensembl列的值存在于对应行Revel_Transcripts列中的行。其中Revel_Transcripts列的值可能为单个ID或多个用分号分隔的ID,Ensembl列仅包含单个ID。

解决方法

使用apply逐行检查Ensembl的值是否在Revel_Transcripts分割后的ID列表中,以此作为筛选条件:

# 执行筛选
filtered_df = IGV_table[IGV_table.apply(lambda row: row['Ensembl'] in row['Revel_Transcripts'].split(';'), axis=1)]

# 查看筛选后的相关列结果
print(filtered_df[["Revel_Transcripts", "Ensembl"]])

预期结果

Revel_Transcripts          Ensembl
21  ENST00000438426;ENST00000318560  ENST00000318560
22  ENST00000438426;ENST00000318560  ENST00000318560
23  ENST00000438426;ENST00000318560  ENST00000318560
24  ENST00000438426;ENST00000318560  ENST00000318560
25  ENST00000438426;ENST00000318560  ENST00000318560
26  ENST00000438426;ENST00000318560  ENST00000318560
27  ENST00000438426;ENST00000318560  ENST00000318560
28  ENST00000438426;ENST00000318560  ENST00000318560
29  ENST00000438426;ENST00000318560  ENST00000318560

内容的提问来源于stack exchange,提问作者Manolo Dominguez Becerra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:39:52