Мой код для панд стайлинга зацикливается дважды и удваивает время выполнения моей Программы. Пожалуйста, помогите мне понять, почему?
Я создаю бота, который очищает веб-сайт для определенных строк и окрашивает ячейку информационного кадра, содержащую URL-адрес этого веб-сайта, на основе результатов. Это делается с помощью функции стиля для панд. Вывод и код, который его производит, выглядят следующим образом:
Кодовый вывод
#defining colour function. 'site' is variable that stores element in 'Article URL' cell.
def A_4thStreetWine_func(site):
site_download = rq.get(site)
#convert website to string and look for specified strings in it. returns Boolean.
condition_1 = '4th' in site_download.text \
and 'Street' in site_download.text \
and 'Project Runway'in site_download.text \
or '4th' in site_download.text \
and 'STREET' in site_download.text \
and 'Project Runway'in site_download.text
print(condition_1)
condition_2 = "403 Forbidden" in site_download.text
condition_3 = "Page not found" in site_download.text
if condition_1:
color = 'green'
elif condition_2:
color = 'orange'
elif condition_3:
color = 'purple'
else:
color = 'red'
return 'background-color: %s' % color
#colour 'Article URL' cells in rows 329 and 351 according to function. 'A_4thStreetWine_DF' is key of dataframe in dataframe dictionary (dfd).
dfd['A_4thStreetWine_DF'].loc[[329,351]].style.applymap(A_4thStreetWine_func, subset=['Article URL'])
Метод style.applymap () заставляет функцию перебирать указанные ячейки в кадре данных, проверяя каждый URL и окрашивая его ячейку. Однако, когда я печатаю (условие_1), становится очевидно, что он проверяет каждый веб-сайт дважды и буквально удваивает время работы программы.
Вывод кода с напечатанным условием
Может ли кто-нибудь помочь мне понять, почему это так и как заставить цикл работать один раз?