Python: извлечение данных определенных столбцов и сохранение их в переменных - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть CSV-файл, и я хочу извлечь из него поле оценок и комментариев и сохранить его в двух переменных - рейтинг и комментарий. После завершения этого процесса мне нужно просмотреть извлеченные данные. Данные, хранящиеся в файле CSV, выглядят следующим образом:

enter image description here

В моем файле Python dataclean код, написанный на данный момент:

class Extractdata:

    def __init__(self, rating, comment):
        self.rating = rating
        self.comment = comment
requirement_list = []
import csv
with open('D://Python//testml//my-tracks-reviews.csv', encoding='utf-8') as fileread:
    filereader = csv.DictReader(fileread, delimiter=';', quotechar='"')
    next(filereader, None)  # Skip the header.
    # Unpack the row directly in the head of the for loop.
    for rating, comment_text in filereader:
        # Get the data in the variable instances.
        rating = int(rating)
        comment = comment_text
        # Now create the requirement instance and append it to the list.
        requirement_list.append(Extractdata(rating, comment))

# View the data

и я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:/Users/Sam/PycharmProjects/ReqPrio/preprocess.py", line 12, in <module>
    for rating, comment_text in filereader:
ValueError: not enough values to unpack (expected 2, got 1)

Process finished with exit code 1

Также кто-нибудь может подсказать, как получить доступ к переменной оценок из этого файла в другом файле, например, main.py, чтобы вычислить среднее значение оценок?

1 Ответ

0 голосов
/ 06 ноября 2018

csv.DictReader возвращает итератор, который генерирует строки в виде диктов, поэтому вы должны получить доступ к столбцам каждой строки с их ключами:

for row in filereader:
    rating = int(row['rating'])
    comment = row['comment_text']
    requirement_list.append(Extractdata(rating, comment))

Вы также должны удалить строку, пропускающую заголовок, потому что csv.DictReader уже читает первую строку как заголовок для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...