[英]Extract string between two delimiters in Python dataframe
我正在尝试从以下内容中提取:
和-
之间的值
>>> all_cancers.iloc[:,3]
0 chr1:100414771-100414772
1 chr1:10506157-10506158
2 chr1:109655506-109655507
3 chr1:113903257-113903258
4 chr1:117598869-117598870
我尝试re.findall('\:(.*?)\-', all_cancers.iloc[:,3].astype(str))
来执行此操作,但它会生成以下错误: TypeError: expected string or bytes-like object
。
这里缺少什么?
你可以使用这个模式,
In [33]: re.match(r'.*:(.*)-',"chr1:100414771-100414772").group(1)
Out[33]: '100414771'
在 datafame 中,您可以使用apply
+ lambda
all_cancers.iloc[:,3].apply(lambda x: re.match(r'.*:(.*)-', x).group(1))
使用extract
all_cancers.iloc[:,3].str.extract(r'.*:(.*)-')
(来源:OlvinRoght 的评论)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.