在文本中搜索关键字并为每个找到的关键字创建一个数据框列?

雷切尔

我正在通过一些网页搜索关键字。再次感谢@Abdou 帮助我解决静默错误处理我给你举个例子:

# this is basically what I do
import pandas as pd
import requests


data = [{"URLs" : "https://www.mercedes-benz.de", "electric" : 1},
        {"URLs" : "https://www.audi.de", "electric" : 0}, 
        {"URLs" : "https://ww.audo.de", "electric" : 0}, 
        {"URLs" : "NaN", "electric" : 0}]


def contains_keywords(link, keywords):
    try:
        output = requests.get(link).text
        return int(any(x in output for x in keywords))
    except:
        return "Wrong/Missing URL"


df = pd.DataFrame(data)
mykeywords = ('car', 'vehicle', 'automobile')
df['extra_column'] = df.URLs.apply(lambda l: contains_keywords(l, mykeywords))

如您所见,我请求存储在 .xml 中的 URLdf.data并从中搜索关键字mykeywords并将二进制结果存储在extra_column. 该脚本基本上产生以下内容:

#                            URLs  electric       extra_column
# 0  https://www.mercedes-benz.de         1                  1
# 1           https://www.audi.de         0                  1
# 2             https://ww.audo.e         0                  0
# 3                           NaN         0  Wrong/Missing URL

到目前为止,我只知道,如果我找到一个关键字。但我想找出我找到了哪些关键字 - 无需单独运行contains_keywords()每个关键字mykeywords有没有办法为每个关键字创建一个新列并将结果(1=关键字找到)存储DataFrame? 那就是:我需要df为每个关键字添加额外的列

德米特里·菲亚科夫斯基
import pandas as pd
import requests


data = [{"URLs" : "https://www.mercedes-benz.de", "electric" : 1},
        {"URLs" : "https://www.audi.de", "electric" : 0}, 
        {"URLs" : "https://ww.audo.de", "electric" : 0}, 
        {"URLs" : "NaN", "electric" : 0}]


def contains_keywords(link, keyword):
    try:
        output = requests.get(link).text
        return int(keyword in output)
    except:
        return "Wrong/Missing URL"


df = pd.DataFrame(data)
mykeywords = ('car', 'vehicle', 'automobile')
for keyword in mykeywords:
    df[keyword] = df.URLs.apply(lambda l: contains_keywords(l, keyword))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用数据框中的关键字来检测另一个数据框或字符串中是否存在关键字

提取两个关键字或一个关键字与\ n之间的文本

在一个列中查找几个关键字,如果找到,则返回4列

如何在不同的 Pandas 数据框中搜索关键字并在父 DF 中更新或创建具有匹配关键字的新列

在mysql中搜索关键字并获取至少包含5个关键字的数据

jQuery:match关键字(将是一个数组)并为其设置span标签

在文本中搜索多个关键字

在整个 JSON 列中搜索关键字(一个键除外)

如果某列中的一个包含多个关键字,是否可以在数据框中拆分行?

搜索关键字而不管数据框中的特殊字符

在数据框的注释中搜索关键字

如何使用另一个表中的关键字搜索一个表中的文本

Pands:根据字典中的关键字创建数据框

给关键字一个排名

使用在文本框中输入的多个关键字搜索 SQL 数据库

在R中将一个数据框的关键字与另一个数据框进行匹配

在大文本中搜索关键字并使用关键字 php 获取部分文本

从python中的文本中找到并提取一个包含关键字的字符串

创建一个新的数据框,其中列出了关键字及其各自值的总和

创建一个新的数据框,其中包含关键字及其各自值之和的列表

从单词列表中提取所有匹配的关键字,然后创建一个新的数据框熊猫

在用户输入中搜索关键字并在字典中找到相应的关键字

SQL搜索列分别带有一个组合关键字

如何使用SQL中的包含从另一个表中搜索关键字

在数据框的每一行中进行搜索时,如何从关键字列表中获取匹配的关键字?

根据另一个文件/词典中的关键字过滤文件中的文本

Python - 检查列表中的关键字是否在字符串中(作为一个整体)并返回找到的关键字

解析一个关键字的 .txt 文件,然后寻找子关键字?

将相似的关键字归为一个关键字