Python 提取数据帧中字符串的一部分
我有一个dataframe,在一列中有如下行:Python 提取数据帧中字符串的一部分,python,regex,pandas,Python,Regex,Pandas,我有一个dataframe,在一列中有如下行: \uuuuu标签\uuuuu JCB\u备件\uuuuu标签\uuuu差速器壳JCB铸造总成差速器壳 __标签振动压路机标签道路压路机双滚筒微型压路机座椅驱动型号fyl发动机hp气冷柴油发动机车轮尺寸行走速度公里爬坡能力驱动静液压驱动 __标签振动压路机标签道路压路机双滚筒微型压路机座椅驱动型号fyl发动机hp气冷柴油发动机车轮尺寸行走速度公里爬坡能力驱动静液压驱动 __标签\履带式推土机\标签\推土机推土机 __标签\履带式推土机\标签\推土机推
\uuuuu标签\uuuuu JCB\u备件\uuuuu标签\uuuu差速器壳JCB铸造总成差速器壳
__标签振动压路机标签道路压路机双滚筒微型压路机座椅驱动型号fyl发动机hp气冷柴油发动机车轮尺寸行走速度公里爬坡能力驱动静液压驱动
__标签振动压路机标签道路压路机双滚筒微型压路机座椅驱动型号fyl发动机hp气冷柴油发动机车轮尺寸行走速度公里爬坡能力驱动静液压驱动
__标签\履带式推土机\标签\推土机推土机
__标签\履带式推土机\标签\推土机推土机
我希望将前缀等于\uuuuu label\uuuu
的所有单词提取到一个单独的列中,如下所示:
\uuuuu标签\uuuuuujcb\u备件\uuuuu标签\uuuuuu差速器壳
__标签振动压路机标签压路机
__标签振动压路机标签压路机
__标签\履带式推土机\标签\推土机
__标签\履带式推土机\标签\推土机
我所尝试的:
labels=input[0].str.extract(r'(\uuuu label\uuu[\ w]+))
但它只提取出一个第一标签。您的代码基本上是正确的;只是你想要
findall
:
labels = input[0].str.findall(r'(__label__[\w]+)')
您可以尝试以下方法:
import re
str = """
__label__JCB_Spare_Part __label__Differential_Housings jcb casting assy differential housing
__label__Vibrating_Roller __label__Road_Roller double drum mini roller seat drive model fyl engine nbsp hp aircolled diesel engine wheel size walk speed km climbing capacity drive hydrostatic drive nbsp nbsp
__label__Vibrating_Roller __label__Road_Roller double drum mini roller seat drive model fyl engine nbsp hp aircolled diesel engine wheel size walk speed km climbing capacity drive hydrostatic drive nbsp nbsp
__label__Crawler_Dozer __label__Bulldozer dozer bulldozer
__label__Crawler_Dozer __label__Bulldozer dozer bulldozer
"""
result = re.findall('__label__\w+', str)
谢谢@gmds,我不知道str对象中的findall()。顺便说一句\w包含下划线,对吗???@hacker315我的错误;你说得对\w确实包含下划线,所以它只是关于
findall
vsextract
。我已经把答案的那部分删掉了。