首页 > 解决方案 > 如何以最佳方式基于子字符串列表从字符串的数据框列中获取子字符串列表?

问题描述

我有一个熊猫数据框的字符串列和一个子字符串(短语)列表。我想要做的是迭代所有字符串,并为每个字符串构造一个新列,该列将包含该特定字符串中存在的子字符串(短语)(基于现有的子字符串列表)。而且我找不到最佳方法来避免等待很长时间。

我创建的在单个字符串上运行的函数的代码示例:

def myfunc(text,skills):
    res=[]
    for skill in skills:
        skill2=" "+str(skill)+" "
        if skill2 in text:
            res.append(skill)
    return res

k=myfunc("This is a test text containing .niet network as well as 2008 r2 to find out  f the  f# skills",['.niet','2008 r2','net','f','f#'])
print(k)

这里的输出应该是:

['.niet', '2008 r2', 'f', 'f#']

我创建了上面的函数,以便我可以在 pandas.dataframe.apply() 函数中调用它,以便迭代数据框的“描述”列的所有字符串条目......

示例代码:

dev['sample'] = dev['description'].apply(lambda x: myfunc(x,myskillslist=['.niet','2008 r2','net','f','f#']))

x 表示每个文档/字符串,而 myskillslist 是子字符串列表(这是一个不会更改的预定义列表)。

有任何想法吗?有没有更好的方法来做到这一点?我进行了很多搜索,但无法创建更快的解决方案。

标签: pythonstringpandaslist-comprehension

解决方案


推荐阅读