python - 如何以最佳方式基于子字符串列表从字符串的数据框列中获取子字符串列表?
问题描述
我有一个熊猫数据框的字符串列和一个子字符串(短语)列表。我想要做的是迭代所有字符串,并为每个字符串构造一个新列,该列将仅包含该特定字符串中存在的子字符串(短语)(基于现有的子字符串列表)。而且我找不到最佳方法来避免等待很长时间。
我创建的在单个字符串上运行的函数的代码示例:
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 是子字符串列表(这是一个不会更改的预定义列表)。
有任何想法吗?有没有更好的方法来做到这一点?我进行了很多搜索,但无法创建更快的解决方案。
解决方案
推荐阅读
- php - 如何在zend服务器中使用php连接到MySQL数据库
- c++ - 模板构造函数和复制构造函数
- java - 使用 gradle 将清单文件添加到 jar
- javascript - 在反应中,在 Render() 之前执行 API 调用和重定向的最佳方法是什么?
- python - 如何使用 python Telegram Bot API 将文件上传到谷歌驱动器
- c - 用 C 写位图
- android - 错误:无法解决:同步 Android 项目时的 firebase-auth-license
- python - 如何将纬度归一化到-90到90的范围内?
- python-3.x - 应用比较运算符后如何输出到另一列
- python - 我怎么知道我的电报机器人用户按下了按钮?