используя re.sub () для строковых объектов, я получаю TypeError: ожидаемую строку или байтовоподобный объект.
Я пытаюсь очистить кучу твитов, которые я скачал и сохранил в csvфайл.CSV-файл содержит только два столбца: столбец «Нет», который показывает номер каждого твита, и «тело».Я использую re.sub (), чтобы удалить все «упоминания» из тела твитов.Но команда возвращает ошибку.ниже мой код и ошибка:
# Convert to list
data = df.content.values.tolist()
# Remove mentions
data = [type(sent) for sent in data[:10]]
print(data)
data = [re.sub('\S*@\S*\s?', '', sent) for sent in data[:10]]
[<class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>]
Как вы можете видеть выше, я дважды проверил и убедился, что вход в команду regex является строкой.Однако, ошибка, которую я получаю, говорит иначе
TypeError Traceback (most recent call last)
<ipython-input-11-bd1250ebb94b> in <module>
6 data = [type(sent) for sent in data[:10]]
7 print(data)
----> 8 data = [re.sub('\S*@\S*\s?', '', sent) for sent in data[:10]]
9
<ipython-input-11-bd1250ebb94b> in <listcomp>(.0)
6 data = [type(sent) for sent in data[:10]]
7 print(data)
----> 8 data = [re.sub('\S*@\S*\s?', '', sent) for sent in data[:10]]
9
~\Anaconda3\lib\re.py in sub(pattern, repl, string, count, flags)
190 a callable, it's passed the Match object and must return
191 a replacement string to be used."""
--> 192 return _compile(pattern, flags).sub(repl, string, count)
193
194 def subn(pattern, repl, string, count=0, flags=0):
TypeError: expected string or bytes-like object