с примером, который вы приводите, вы можете использовать str.replace()
:
df['column1'] = df['column1'].str.replace('http|https|://|www.','') \
#replace some patterm by nothing
.str.replace('.com/[\w/\-]+','.com')
# replace specific pattern by other specific pattern
Тогда, если он не соответствует всем вашим критериям, вы можете добавить больше .str.replace()
с тем, что вам нужно
РЕДАКТИРОВАТЬ: после просмотра документации Series.str.replace она эквивалентна re.sub()
, поэтому вы можете сделать:
df['column1'] = df['column1'].str.replace('https*://[\w\.]+\.com[\w=*/\-]+|https*://[\w\.]+\.com|[\w\.]+\.com/[\w/\-]+',
lambda x: re.findall('(?<=\://)[\w\.]+\.com|[\w\.]+\.com', x.group())[0])
Внутри параметры такие же, какв вашем re.sub()
вашего вопроса.Но вы не получаете ожидаемый результат, вы сохраняете «www».с этим.