您好我正在尝试替换包含' www ...'的所有表达式和' http://..'只有' URL'。我试过了,但是我收到了这个错误。
TypeError: expected string or buffer
我的代码是:
df['text_1'] = re.sub('((www\.[^\s]+)|(https?://[^\s]+))','URL',df['text'])
df[text]
包含推文,所以我想只保留文本。
我在Python 2中
感谢。
答案 0 :(得分:2)
假设df
是pandas DataFrame,请不要使用re.sub
。请改用pandas.DataFrame.replace:
df['text_1'] = df['text'].replace('((www\.[^\s]+)|(https?://[^\s]+))',
'URL',
regex=True)
这将生成一个新列text_1
,其中所有值text
都会根据您的正则表达式替换。
答案 1 :(得分:1)
听起来你收到了这个错误,因为你没有提供string or buffer
作为re.sub
的第三个参数。
>>> re.sub('\W', 'REPLACED', 'this is my text')
'thisREPLACEDisREPLACEDmyREPLACEDtext'
>>> re.sub('\W', 'REPLACED', None)
Traceback (most recent call last):
...
TypeError: expected string or buffer
确保df['text']
包含正确的字符串,然后再尝试将其用于re.sub