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

如何提取正斜杠后末尾文本 处理df的Sample_name列获取样本ID

pandas清洗Sample_name列实现方案

以下两种方法都可以直接实现你要的提取效果,均为pandas常规处理逻辑,运行稳定效率高。


方法1:标准路径库处理(鲁棒性最强)

借助Python标准库os的路径处理方法,自动适配任意层级的文件路径,不会因为路径中存在额外斜杠、特殊字符出错:

import os

# 核心处理逻辑
df["Sample_name"] = df["Sample_name"].apply(
    lambda x: os.path.basename(x).removesuffix(".vcf.gz")
)
  • 兼容提示:如果你的Python版本低于3.9,不支持removesuffix方法,可以替换为切片写法,效果完全一致:
    lambda x: os.path.basename(x)[:-7]
    
    这里的-7是因为后缀.vcf.gz固定长度为7个字符。

方法2:正则直接提取(无需导入额外模块)

直接通过pandas字符串方法的正则匹配,一步提取目标ID,代码更简洁:

df["Sample_name"] = df["Sample_name"].str.extract(r'/([^/]+)\.vcf\.gz$')
  • 正则逻辑说明:匹配字符串末尾处、前接正斜杠、后接.vcf.gz后缀的非斜杠片段,恰好对应你需要的样本ID。

两种方法运行后,得到的DataFrame都和你给出的预期结果完全一致:

AFGTSample_name
0.0011/1ID0001
0.0050/1ID0002

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:24:10