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

Python如何提取DataFrame中DNA序列特定模式前的字符及前缀

实现方案

需求1:提取大写字母及之前的全部内容

修改你的正则表达式,将大写字母也包含到捕获组中即可:

# 提取结果存储到新列seq_to_upper
df['seq_to_upper'] = df['Sequence'].str.extract(r'^(.*?[A-Z])', expand=False)

正则说明:

  • ^ 锚定匹配字符串开头,避免序列中间出现大写字母时匹配错误
  • .*? 非贪婪匹配任意字符,直到遇到第一个大写字母
  • [A-Z] 匹配第一个出现的大写字母,和前面的内容共同构成捕获组返回

需求2:提取大写字母往前数第16个字符

需求1的输出结果最后一位就是目标大写字母,直接取字符串倒数第16位即可:

df['16th_before_upper'] = df['seq_to_upper'].str[-16]

如果不需要留存需求1的结果,也可以一步完成:

df['16th_before_upper'] = df['Sequence'].str.extract(r'^(.*?[A-Z])', expand=False).str[-16]

结果验证

运行代码后输出和预期完全一致:

geneseq_to_upper(截取片段展示)16th_before_upper
ampC...tctaacgcAc
yifL...agcaGaaagcg
glyW...cgcGaacggct

内容的提问来源于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.10.01 01:09:02