У меня небольшой размер данных и я пытаюсь удалить 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()
Спасибо!
Попробуй это:
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
Попробуйте более чистое регулярное выражение:
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)
^
которая фиксирует начальную точку предложения. Это решит вашу проблему