Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-矢量化正则表达式搜索以分类_Python_Regex_Pandas_Dataframe - Fatal编程技术网

Python-矢量化正则表达式搜索以分类

Python-矢量化正则表达式搜索以分类,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我有一个identifier函数,它遍历DataFrame列中的所有元素,然后为它们分配一个类别。我现在的代码是这样的 def fruit_replace(x): fruit_quantity = re.search(r'(\\d+)quantity', x) if 'apple' in x: return 'green' elif 'pear' in x: return 'green' elif 'cherry' in x:

我有一个identifier函数,它遍历DataFrame列中的所有元素,然后为它们分配一个类别。我现在的代码是这样的

def fruit_replace(x):
    fruit_quantity = re.search(r'(\\d+)quantity', x)
    if 'apple' in x:
        return 'green'
    elif 'pear' in x:
        return 'green'
    elif 'cherry' in x:
        return 'red'
    elif 'banana' in x:
        return 'yellow'
    elif fruit_quantity != None:
        return fruit_quantity.group(0)
我将其应用于数据帧上的lambda函数,并将结果分配到一个新列中。不幸的是,它有点复杂,因为
水果数量
搜索与其他搜索不同

这个过程应该会产生这样的结果

def fruit_replace(x):
    fruit_quantity = re.search(r'(\\d+)quantity', x)
    if 'apple' in x:
        return 'green'
    elif 'pear' in x:
        return 'green'
    elif 'cherry' in x:
        return 'red'
    elif 'banana' in x:
        return 'yellow'
    elif fruit_quantity != None:
        return fruit_quantity.group(0)
原始数据帧

pd.DataFrame({'fruit_type': ['big apple', 'small cherry', 'jerry 10quantity']})
进入这个

pd.DataFrame({'fruit_type': ['big apple', 'small cherry', 'peach 10quantity'],
              'category': ['green', 'red', 10]})
我的问题是,这段代码是否可以以一种更具python或pandas风格的方式进行改进,并可能进行矢量化?我必须将这个应用到大约500万行,这需要一些时间

非常感谢

您可以与方法结合使用:

结果:

In [270]: df
Out[270]:
         fruit_type category
0         big apple    green
1      small cherry      red
2  jerry 10quantity       10

请提供样本数据集(5-7行)和所需数据集。请阅读