Я очищаю данные столбца, а затем моя работа заключается в том, чтобы сохранить очищенную информацию в том же столбце без изменений, чтобы затем ее можно было передать в векторизатор tf-idf. Следующий код, который я написал, работает хорошо, но сохраняет результаты в виде списка. Я хочу, чтобы чистый вывод был сохранен в том же столбце, а не в списке. Моя цель - сохранить информацию в правильном формате.
#Cleaning comment section
import re
import nltk
stopwords = nltk.corpus.stopwords.words('english')
def text_cleaner(text,num):
newString = text.lower()
newString = re.sub(r'\([^)]*\)', '', newString)
newString = re.sub(r"[0-9]", "", newString)
newString = re.sub(',','.', newString)
newString = re.sub(r"'s\b","",newString)
newString = re.sub("[^a-zA-Z]", " ", newString)
newString = re.sub(r"Ä¢", "", newString)
newString = re.sub(r"·", "", newString)
newString = re.sub(r"\'", "", newString)
newString = re.sub(r"\"", "", newString)
newString = re.sub(r"\n", "", newString)
newString = re.sub(r"\r", "", newString)
if(num==0):
tokens = [w for w in newString.split() if not w in stopwords]
else:
tokens=newString.split()
long_words=[]
for i in tokens:
if len(i)>1: #removing short word
long_words.append(i)
return (" ".join(long_words)).strip()
#call the function
X = []
for t in df1['CHARACTERISTICS']:
X.append(text_cleaner(t,0))
Либо список X следует преобразовать обратно в столбец данных кадра C1, либо функция очистки должна возвращать чистую строку непосредственно в столбец C1. Я попытался следующий код, чтобы сделать это, но привел к ошибке:
df['C1'] = df['C1'].apply(text_cleaner(t,0))