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

如何优雅提取DataFrame指定列中~后的子串并保留分类标识

解决方案(基于Pandas矢量化操作)

假设你的数据已经加载为Pandas DataFrame,以下是无需循环的优雅处理方式:

1. 构造示例数据

先将你给出的数据集转为DataFrame:

import pandas as pd

data = {
    'Category': ['GOTERM_MF_DIRECT', 'GOTERM_MF_DIRECT', 'GOTERM_CC_DIRECT', 'GOTERM_CC_DIRECT'],
    'Term': ['GO:0005102~receptor binding', 'GO:0008139~nuclear localization sequence binding',
             'GO:0016021~integral component of membrane', 'GO:0071564~npBAF complex'],
    'Count': [3, 2, 9, 3]
}
df = pd.DataFrame(data)

2. 处理Category列(保留MF/CC标识)

用正则表达式精准提取Category列中的MF或CC标识:

df['Category'] = df['Category'].str.extract(r'_([MC]F)_', expand=False)

正则_([MC]F)_会匹配并捕获MF或CC部分,直接替换原列内容。

3. 处理Term列(提取~后的字符串)

通过字符串分割直接获取~之后的内容:

df['Term'] = df['Term'].str.split('~').str[1]

若需要更严谨的匹配,也可以用正则提取:

df['Term'] = df['Term'].str.extract(r'~(.*)', expand=False)

最终结果

处理后的DataFrame如下:

CategoryTermCount
MFreceptor binding3
MFnuclear localization sequence binding2
CCintegral component of membrane9
CCnpBAF complex3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:35:21