Я пытаюсь вернуть URL-адреса для списка названий компаний, а затем обновить фрейм данных pandas, чтобы включить возвращенные URL-адреса.
Я импортирую все зависимости и читаю файл .csv:
import logging
import os
import pandas as pd
import re
from googlesearch import search
df = pd.read_csv('Building_Contractors_Stephen_V1.csv')
df.head()
df.head () результаты
Тогда яопределение функции, которая получает все URL:
def get_urls(tag, n, language):
urls = [url for url in search(tag, stop=n, lang=language)][:n]
return urls
Затем я проверяю это на одном URL:
test_return = get_urls(df.Hospital_Building_Contractors[0], 10, 'en')
test_return
, который возвращает список URL:
['https://www.turnerconstruction.com/',
'http://www.turnerconstruction.com/careers',
'http://www.turnerconstruction.com/office-network',
'http://www.turnerconstruction.com/about-us',
'http://www.turnerconstruction.com/turner-university',
'http://www.turnerconstruction.com/careers/jobs',
'http://www.turnerconstruction.com/about-us/where-we-work',
'https://en.wikipedia.org/wiki/Turner_Construction',
'https://en.wikipedia.org/wiki/Turner_Construction#History',
'https://en.wikipedia.org/wiki/Turner_Construction#Early_years']
Похоже, я не могу понять, как перебирать все элементы в моих списках и добавлять их в новые столбцы в кадре данных.
Вот мой код для этого:
i = 0
num = len(df.Hospital_Building_Contractors)
while i < num:
get_urls(df.Hospital_Building_Contractors[i], 1, 'en')
df.insert(1, "URL", urls, allow_duplicates=True)
i += 1
, который возвращает эту ошибку:
NameError Traceback (последний вызов последним) в 17 в то время как я 19 df.insert (1, "URL", urls, allow_duplicates = True) 20 i + = 1 21
NameError: имя 'urls' не определено
Я уверен, что это простая проблема, но я в замешательстве.Я определяю 'urls' в функции get_urls ();поэтому я не уверен, почему я получаю эту ошибку.
В идеале, у меня есть решение, которое выглядит примерно так:
a = 0
num = len(df.Hospital_Building_Contractors)
while a < num:
get_urls(df.Hospital_Building_Contractors[a], 1, 'en')
df.insert(1, "URL", urls, allow_duplicates=True)
a += 1
b = 0
num = len(df.University_Building_Contractors)
while b < num:
get_urls(df.University_Building_Contractors[b], 1, 'en')
df.insert(3, "URL", urls, allow_duplicates=True)
b += 1
c = 0
num = len(df.Hospital_Building_Contractors)
while c < num:
get_urls(df.Hospital_Building_Contractors[c], 1, 'en')
df.insert(5, "URL", urls, allow_duplicates=True)
c += 1
, которое будет перебирать каждый список, находить URL-адреса и добавлять их в фрейм данных.