Проверьте, есть ли условие в каждой строке в Python и присваивает новую переменную - PullRequest
0 голосов
/ 04 октября 2018

У меня есть датафрейм unir в Python, и я хочу проверить, есть ли определенный шаблон текста в URL.Если шаблон присутствует, я хочу присвоить значение новой переменной, если его нет, я хочу оставить переменную пустой.

Пример моих данных:

sample =[
"https://www.unir.net/revista/especiales/ley-de-factura-electronica.html",
"https://www.unir.net/revista/especiales/autoempleo/",
"https://www.unir.net/revista/",
"https://www.unir.net/revista/especiales/examen-acceso-abogacia.html",
"https://www.unir.net/revista/especiales/informe-pisa/",
"https://www.unir.net/revista/",
"https://www.unir.net/revista/especiales/dificultades-de-aprendizaje.html",
"https://www.unir.net/revista/especiales/informe-pisa/profesores-salarios.html",
"https://www.unir.net/revista/especiales/autoempleo/",
"https://www.unir.net/revista/evento/ii-festival-de-teatro-unir/",
"https://en.unir.net/revista/noticias/page/64/",
"https://www.unir.net/revista/especiales/autoempleo/",
"https://www.unir.net/revista/especiales/informe-pisa/profesores-salarios.html",
"https://www.unir.net/revista/"]

unir = pd.DataFrame(sample, columns=["url"])

И я ищу шаблон "https://www.unir.net/revista/especiales", делающий следующее:

for x in unir["url"]:
    if (unir["url"].str.contains("https://www.unir.net/revista/especiales")) is True:
        unir["arees"] = "Especiales"
    else:
        unir["arees"] = ""

Но он возвращает только пробелы.

Я не знаюв чем проблема ...

Заранее спасибо,

1 Ответ

0 голосов
/ 04 октября 2018

В пандах лучше избегать петель, потому что медленнее, лучше использовать векторизованное решение с numpy.where:

mask = unir["url"].str.contains("https://www.unir.net/revista/especiales")
unir["arees"] = np.where(mask, "Especiales", '')
print (unir)
                                                  url       arees
0   https://www.unir.net/revista/especiales/ley-de...  Especiales
1   https://www.unir.net/revista/especiales/autoem...  Especiales
2                       https://www.unir.net/revista/            
3   https://www.unir.net/revista/especiales/examen...  Especiales
4   https://www.unir.net/revista/especiales/inform...  Especiales
5                       https://www.unir.net/revista/            
6   https://www.unir.net/revista/especiales/dificu...  Especiales
7   https://www.unir.net/revista/especiales/inform...  Especiales
8   https://www.unir.net/revista/especiales/autoem...  Especiales
9   https://www.unir.net/revista/evento/ii-festiva...            
10      https://en.unir.net/revista/noticias/page/64/            
11  https://www.unir.net/revista/especiales/autoem...  Especiales
12  https://www.unir.net/revista/especiales/inform...  Especiales
13                      https://www.unir.net/revista/            
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...