Как удалить первую часть строки URL-адреса в значении столбца с Pandas? - PullRequest
3 голосов
/ 17 июня 2020

Я изо всех сил пытаюсь удалить первую часть моих URL-адресов в столбце myId в файле csv.

my.csv

myID

https://mybrand.com/trigger:open?Myservice=Email&recipient=brn:zib:b1234567-9ee6-11b7-b4a2-7b8c2344daa8d

желаемый результат для myID

b1234567-9ee6-11b7-b4a2-7b8c2344daa8d

мой код:

df['myID'] = df['myID'].map(lambda x: x.lstrip('https://mybrand.com/trigger:open?Myservice=Email&recipient=brn:zib:'))

вывод в myID (первая буква 'b' отсутствует перед строкой):

1234567-9ee6-11b7-b4a2-7b8c2344daa8d

приведенный выше код удаляет https://mybrand.com/trigger:open?Myservice=Email&recipient=brn:zib: Однако он также удаляет первую букву из myID, если перед идентификатором стоит одна, если это число, то оно остается неизменным.

Может ли кто-нибудь помочь с этим? Спасибо!

Ответы [ 3 ]

1 голос
/ 17 июня 2020

Здесь вы можете попробовать замену регулярного выражения:

df['myID'] = df['myID'].str.replace('^.*:', '', regex=True)

Этот подход заключается в простом удалении всего содержимого с начала MyID до последнего двоеточия включительно. Это оставит UUID, который вы хотите сохранить.

0 голосов
/ 17 июня 2020

Вы можете использовать re (если часть перед тем, что вы хотите извлечь, всегда одна и та же)

import re

idx = re.search(r':zib:', myID)
myNewID = myID[idx.end():]

Тогда у вас будет:

myNewID

'b1234567-9ee6-11b7-b4a2-7b8c2344daa8d'
0 голосов
/ 17 июня 2020

С помощью lstrip вы удаляете все символы из строки, которые соответствуют набору символов, которые вы передаете в качестве аргумента. Итак:

string = abcd
test = string.lstrip(ad)
print(test)

Если вы хотите удалить первые x символов строки, вы можете просто нарезать ее как массив. Для вас это будет примерно так:

df['myID'] = df['myID'].map(lambda x: x[:-37])

Однако для того, чтобы это работало, часть, которую вы хотите получить из строки, должна иметь постоянный размер.

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