Как получить доступ и управлять отдельными элементами в файле CSV? - PullRequest
1 голос
/ 22 апреля 2020

Я пытаюсь выполнить предварительную обработку некоторых данных в CSV-файле. Файл содержит информацию о различных лапшу рамен. Третий элемент каждой строки в файле содержит строку от 1 до 2 слов. Эти слова описывают рамен (например: «Острые лапши чили Гарли c корейские» или «Чашка лапши с курицей» и др. c).

Есть более 2500 отзывов, и я пытаюсь отслеживать 100 наиболее часто используемых слов для описания во всех рамэн. Затем я go возвращаю свои данные, сохраняя только те слова, которые встречаются в 100 наиболее часто используемых. Я отказываюсь от всего остального.

Для справки, мой заголовок выглядит так: Review #, Brand, Variety, Style, Country, Stars, Top Ten

Я не совсем уверен, как получить доступ отдельные слова в каждом описании. По описанию я имею в виду колонку «разнообразие». Как способ тестирования, у меня есть что-то вроде:

reader = csv.reader(open('ramen-ratings.csv', 'r'))
outputfile = open('variety.txt', 'w')

next(reader)

for line in reader:
    for word in line[2]:
        print(word)

Но это только печатает каждого отдельного символа, по одному, в своей строке. Это не распознавание отдельных слов в строке, а вместо этого отдельных символов.

Довольно базовый c вопрос, который я знаю, но я очень новичок в python, поэтому могу использовать некоторую помощь. Спасибо!

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Поскольку line[2] - строка, повторение по ней означает итерацию по каждому символу. Если вы хотите перебирать каждое слово, вам следует разбить строку на слова.

Для этой цели вы можете использовать функцию split, которая по умолчанию разделяет пробел на одну строку на список строк (если вы не укажите еще один символ):

for line in reader:
    for word in line[2].split():
        print(word)
1 голос
/ 22 апреля 2020

Вместо

for word in line[2]:

используйте

for word in line[2].split():

Объяснение:

line[2] - это, как вы написали - строка слов. Перебирая строку, вы перебираете отдельные символы.

С другой стороны, метод .split() возвращает список отдельных слов этой строки (что вам и нужно).

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