Как посчитать вхождения значения в ключ? - PullRequest
0 голосов
/ 25 сентября 2018

Я уже проверил решение, словарь: Как рассчитать частоту значений в списке - Python3, в stackoverflow, а также другие параметры в Google.Вместо того, чтобы получать количество вхождений из ключа.Я получаю количество символов из слов, но не количество слов на самом деле.

import csv
from collections import defaultdict

content = "Note.csv"
collector = {}
with open(content, 'r') as file:
    genres = csv.DictReader(file, skipinitialspace=True)
    for row in genres:
        collector = {"Genre": f'{row["others"]}',
                     "Title": f'{row["title"]}'}
        print(collector)
        colors = ['r','g']
        for k, v in collector.items():
            D = defaultdict(list)
            for i, item in enumerate(v):
                D[item].append(i)
            D = {k: v for k, v in D.items()}
            print(k, D)

Note.csv содержит следующее:

title, author, year, others, note
Everything,Nobody,2222,Fiction,This is just something of everything!
Nothing,Everybody,1111,Romance,This is nothing of anything!
Pokemon,Pikachu,1999,Fiction,Once upon time.

Окончательный результат должен быть на самом деле или что-то вроде этого.1: романтика;2: Художественная литература

Из результатов я хочу иметь возможность создать круговую диаграмму.

Как всегда, большое спасибо за ваши полезные комментарии и ответы!

С уважением,

1 Ответ

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

Если вы просто считаете количество каждого жанра, вы можете использовать Counter:

from collections import Counter

with open(content, 'r') as file:
    genres = csv.DictReader(file, skipinitialspace=True)
    c = Counter(row["others"] for row in genres)

print(c)
# Counter({'Fiction': 2, 'Romance': 1})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...