Удаление URL из столбца в Pandas Dataframe

1

У меня небольшой размер данных и я пытаюсь удалить url из конца строки в столбце Links. Я пробовал следующий код, и он работает на столбцах, где URL-адрес сам по себе. Проблема в том, что, как только есть предложения перед URL-адресом, код не удалит эти URL-адреса

Вот данные: https://docs.google.com/spreadsheets/d/10LV8BHgofXKTwG-MqRraj0YWez-1vcwzzTJpRhdWgew/edit?usp=sharing (ссылка на таблицу)

import pandas as pd  

df = pd.read_csv('TestData.csv')    

df['Links'] = df['Links'].replace(to_replace=r'^https?:\/\/.*[\r\n]*',value='',regex=True)

df.head()

Спасибо!

  • 2
    Пожалуйста, не используйте ссылки на сторонние сайты. Включите столько вопросов, сколько необходимо в вашем вопросе. Также включите ожидаемые результаты.
  • 0
    просто удалите часть ^ которая фиксирует начальную точку предложения. Это решит вашу проблему
Показать ещё 1 комментарий
Теги:
pandas
python-3.x

2 ответа

1
Лучший ответ

Попробуй это:

import re
df['cleanLinks'] = df['Links'].apply(lambda x: re.split('https:\/\/.*', str(x))[0])

Выход:

df['cleanLinks']

    cleanLinks
0   random words to see if it works now 
1   more stuff that doesn't mean anything 
2   one last try please work 
0

Попробуйте более чистое регулярное выражение:

df['example'] = df['example'].replace(r'http\S+', '', regex=True).replace(r'www\S+', '', regex=True)

Прежде чем внедрять регулярное выражение в pandas .replace() или где-либо еще, вам нужно проверить шаблон, используя re.sub() в одном базовом примере строки. Когда вы столкнулись с большой проблемой, разделите ее на меньшую.

Кроме того, мы могли бы пойти с методом str.replace:

df['status_message'] = df['status_message'].str.replace('http\S+|www.\S+', '', case=False)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню