отделить и извлечь часть строк URL-адресов с помощью регулярных выражений? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть df с переменной с именем url. Каждая строка URL в url имеет уникальный шестизначный буквенно-цифровой идентификатор в строке URL. Я пытался извлечь определенную часть каждой строки, article_id из всех URL-адресов, а затем добавить ее к df в качестве новой переменной.

Например, xwpd7w - это article_id для https://www.vice.com/en_us/article/xwpd7w/how-a-brooklyn-gang-may-have-gotten-crazy-rich-dealing-for-el-chapo

Как мне извлечь article_ids из всех URL-адресов в df на основе их позиции рядом с /article/? Используя какой-либо метод, регулярное выражение или нет?

До сих пор я сделал следующее:

df.url.str.split()

ex output: [https://www.vice.com/en_au/article/j539yy/smo...

df['cutcurls'] = df.url.str.join(sep=' ')
ex output: h t t p s : / / w w w . v i c e . c o m / e n

Есть идеи?

1 Ответ

1 голос
/ 10 октября 2019

Применить метод "str.extract".

df=pd.DataFrame({"url":["https://www.vice.com/en_us/article/xwpd7w/how-a-brooklyn-gang-may-have-gotten-crazy-rich-dealing-for-el-chapo","https://www.www.www//en_us/article/idId2019/buzzwords"]}) 

df["articel_id"]= df.url.str.extract(r"/article/([^/]+)")

    Out:
        url articel_id
        0  https://www.vice.com/en_us/article/xwpd7w/how-...     xwpd7w
        1  https://www.www.www//en_us/article/idId2019/bu...   idId2019

([^ /] +): группы последовательных не '/' символов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...