Стилизация Pandas Code Looping Twice и удвоение времени выполнения Bot - PullRequest
0 голосов
/ 07 сентября 2018

Мой код для панд стайлинга зацикливается дважды и удваивает время выполнения моей Программы. Пожалуйста, помогите мне понять, почему?

Я создаю бота, который очищает веб-сайт для определенных строк и окрашивает ячейку информационного кадра, содержащую 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), становится очевидно, что он проверяет каждый веб-сайт дважды и буквально удваивает время работы программы.

Вывод кода с напечатанным условием

Может ли кто-нибудь помочь мне понять, почему это так и как заставить цикл работать один раз?

...