我正在搜索关键字的一些网页。再次感谢@Abdou帮助我与silent error handling!我给你举个例子:在文本中搜索关键字并为每个找到的关键字创建一个数据框列?
# 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))
正如你所看到的,我请求存储在df.data
的URL和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
到目前为止,我只知道,如果我找到一个关键字。但我想知道,我发现哪些关键字 - 无需分别为mykeywords
中的每个关键字运行contains_keywords()
。有没有办法为每个关键字创建一个新列,并将结果(1
=找到的关键字)存储在DataFrame
?那就是:我需要df
中的每个关键字的其他列。
“我想知道,我发现哪些关键字...”意味着您需要在'df'中为_each_关键字添加更多列吗? –
嗨德米特里,这正是我想要的!每个关键字的列。那可能吗?我尝试了我所知道的一切,但到目前为止我还没有成功。对不起,我的问题不清楚。我会相应地编辑它。 – Rachel