Организация набора данных в Python - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть набор данных .csv большой коллекции идиом.Каждая строка содержит три элемента (разделенных запятыми), которые я хотел бы разделить:

1) Индексное число (0,1,2,3 ...)

2) Идиомасамо по себе

3) Если идиома положительная / отрицательная / нейтральная

Вот небольшой пример того, как выглядит файл .csv:

0,"I did touch them one time you see but of course there was nothing doing, he wanted me.",neutral

1,We find that choice theorists admit that they introduce a style of moral paternalism at odds with liberal values.,neutral

2,"Well, here I am with an olive branch.",positive

3,"Its rudder and fin were both knocked out, and a four-foot-long gash in the shell meant even repairs on the bank were out of the question.",negative

Как вы можете видеть, иногда идиома будет содержать кавычки, а иногда - нет.Тем не менее, я не думаю, что это будет трудно отсортировать.

Я думаю, что лучший способ организовать это в Python был бы через словарь, например так:

example_dict = {0: ['This is an idiom.', 'neutral']}

Так какМогу ли я разбить каждую строку на три разные строки (на основе запятой), а затем использовать первую строку в качестве номера ключа, а последние две в качестве соответствующих элементов списка в пределах dict?

Что у меня изначально былоимелось в виду попытаться разделить запятые следующим кодом:

for line in file:    
    new_item = ','.join(line.split(',')[1:])

Но все, что он делает, это удаляет все до первой запятой в строке, и я не думаю, что делать кучу итераций черезэто было бы эффективно.

Я хотел бы получить несколько советов о том, каков наилучший способ организации таких данных?

1 Ответ

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

Python имеет весь модуль , специально предназначенный для работы с csv файлами.В этом случае вы можете использовать его для составления списка списков из вашего файла.Давайте сейчас назовем ваш файл idioms.csv:

import csv
with open('idioms.csv', newline='') as idioms_file:
    reader = csv.reader(idioms_file, delimiter=',', quotechar='"')
    idioms_list = [line for line in reader]

# Now you have a list that looks like this:
# [[0, "I did touch them...", "neutral"],
#  [1, "We find that choice...", "neutral"],
#  ...
# ]

, и теперь вы можете сортировать данные или упорядочивать их так, как вам нравится.

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