在R语言的dataframe中提取|字符之间内容的方法咨询
实现方案
R语言(tidyverse 方案)
你可以直接用正则表达式匹配两个|之间的内容,或者按|拆分后取对应位置的元素:
library(tidyverse) # 方法1:正则提取,匹配第一个和第二个|之间的内容 df <- df %>% mutate(extracted_content = str_extract(Accession, "(?<=\\|).*?(?=\\|)")) # 方法2:按|拆分取第二部分,适合固定只有两个|的场景 df <- df %>% mutate(extracted_content = str_split(Accession, "\\|", simplify = TRUE)[,2])
如果要提取所有|之间的内容(存在多个|的情况),可以用str_extract_all返回列表格式的结果。
Python(pandas 方案)
同样支持正则提取和拆分取值两种方式:
import pandas as pd # 方法1:正则提取 df['extracted_content'] = df['Accession'].str.extract(r'\|(.*?)\|') # 方法2:拆分后取索引为1的元素 df['extracted_content'] = df['Accession'].str.split('|').str[1]
如果要提取所有|之间的内容,可以用df['Accession'].str.findall(r'\|(.*?)\|')返回列表格式的结果。
内容的提问来源于stack exchange,提问作者Gianluca Bizzaro
相关产品推荐
相关产品推荐

