从 Pandas Dataframe 中的列中删除 URL

Joe*_*ith 2 python python-3.x pandas

我有一个小数据框,正在尝试从“链接”列中的字符串末尾删除 url。我尝试了以下代码,它适用于 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()
Run Code Online (Sandbox Code Playgroud)

谢谢!

Phi*_*rro 8

尝试更干净的正则表达式:

df['example'] = df['example'].replace(r'http\S+', '', regex=True).replace(r'www\S+', '', regex=True)
Run Code Online (Sandbox Code Playgroud)

在 pandas.replace()或其他任何地方实现正则表达式之前,您应该使用re.sub()单个基本字符串示例来测试模式。当遇到一个大问题时,将其分解为一个较小的问题。

此外,我们可以使用 str.replace 方法:

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


Vis*_*hur 5

尝试这个:

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

输出:

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 
Run Code Online (Sandbox Code Playgroud)