Ошибка с функцией to_list() при первом запуске (python)Python

Программы на Python
Anonymous
Ошибка с функцией to_list() при первом запуске (python)

Сообщение Anonymous »

Я работаю над проектом анализа настроений, связанным с Gemini, в Google Co.lab. Один из шагов — изолировать столбец, содержащий обзоры приложений для iOS, преобразовать его в список и очистить от специальных символов, а затем загрузить его обратно в основной запрос. Проблема в том, что блок кода на моем последнем этапе этапа очистки не сработает с первого раза и заработает только после повторного выполнения предыдущих шагов.

Код: Выделить всё

my_data=df[['User','Review', 'Rating']]
my_data.columns=[['user','review','rating']]

my_data.head()

Код: Выделить всё

print(my_data.dtypes)
объект пользователя
объект обзора
рейтинг int64
dtype: объект

Код: Выделить всё

mydata=my_data['review']
print(mydata)
['xxxxxxx до сих пор оказывал мне отличную услугу...',....]

Код: Выделить всё

# cleaning the data and removing special characters
import re

def clean_text(text):
if not isinstance(text, str): # Check if the input is a string
return "" # Return an empty string if not
# remove special characters
text=re.sub(r"[^\w\s]"," ",text)
# Remove single characters
text = re.sub(r"\b[a-zA-Z]\b"," ", text)
# Remove HTML tags
text = text.lower()

# Lowercase the text
text=text.lower()

#Remove extra whitespace
text= re.sub(r"\s+"," ", text)

# Trim leading and trailing spaces
text= text.strip()

return text

Код: Выделить всё

my_data.columns = my_data.columns.get_level_values(0)

Код: Выделить всё

import pandas as pd

# Extract the 'review' column as a list
reviews = mydata.tolist()
#apply the clean_text function to each review
cleaned_reviews = [clean_text(review) for review in reviews]

print(cleaned_reviews)
на этом этапе оно либо будет пустым [], либо приведет к ошибке, связанной с тем, что tolist() не существует
что-то вроде этого:
p>

Код: Выделить всё

AttributeError                            Traceback (most recent call last)  in ()
4
5 # Extract the 'review' column as a list
----> 6 reviews = mydata.tolist()
7
8

/usr/local/lib/python3.10/dist-packages/pandas/core/generic.py in
__getattr__(self, name)    5987         ):    5988             return self[name]
-> 5989         return object.__getattribute__(self, name)    5990     5991     def __setattr__(self, name: str, value) -> None:

AttributeError: 'DataFrame' object has no attribute 'tolist'
Когда я пытался изменить его на to_list() или list(mydata), как было предложено Gemini, возникла та же ошибка, но теперь было написано to_list()/ list(mydata) не существует.
когда я повторяю предыдущие шаги, начиная с mydata=my_data['review'] (изолируя один столбец) и шаг очистки текста. в конечном итоге это сработает
и я получу правильный результат ['xxxxxxx до сих пор предоставлял мне отличный сервис и обеспечивал удобство, надеюсь, что он и дальше будет хорошим',... .]
Со временем все шаги работают, но я пытаюсь понять, почему последний шаг не работает мгновенно и работает только после повторного запуска. Я проверил журнал выполнения, и он работает. Я пробовал изменить код определенными способами, например с помощью list(), но он все равно не запускается, и в конечном итоге я меняю его обратно.
Я хотел бы получить некоторое представление о том, почему это не происходит. запускаться последовательно, потому что я хочу, чтобы он запускался с первой попытки или когда я нажму «Выполнить все»

Подробнее здесь: https://stackoverflow.com/questions/787 ... run-python

Вернуться в «Python»