Python 提取数据帧中字符串的一部分

Python 提取数据帧中字符串的一部分,python,regex,pandas,Python,Regex,Pandas,我有一个dataframe,在一列中有如下行: \uuuuu标签\uuuuu JCB\u备件\uuuuu标签\uuuu差速器壳JCB铸造总成差速器壳 __标签振动压路机标签道路压路机双滚筒微型压路机座椅驱动型号fyl发动机hp气冷柴油发动机车轮尺寸行走速度公里爬坡能力驱动静液压驱动 __标签振动压路机标签道路压路机双滚筒微型压路机座椅驱动型号fyl发动机hp气冷柴油发动机车轮尺寸行走速度公里爬坡能力驱动静液压驱动 __标签\履带式推土机\标签\推土机推土机 __标签\履带式推土机\标签\推土机推

我有一个dataframe,在一列中有如下行:

\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
vs
extract
。我已经把答案的那部分删掉了。