Подсчет книжного инвентаря пользователем - PullRequest
0 голосов
/ 28 ноября 2018

Существует таблица, которая содержит данные за 2014 год. Структура выглядит следующим образом: Каждый пользователь может выдавать разное количество категорий книг.

User-id|Book-Category
1      |Thrill        
2      |Thrill       
3      |Mystery       
3      |Mystery       

Требуется найти для каждого пользователя каждый типвыпущена категория книг. Эти данные уже есть в CSV-файлах, но доступны по годам.Я должен добавить все эти значения.Например:

data for 2014
u-id|book|count
1   |b1  |2  
1   |b2  |4
...  ...  ...

data for 2015
u-id|book|count
1   |b1  |21
2   |b3  |12  
//like the above format,available till 2018.(user1 with book b1 should have a count of 23

Теперь я написал скрипт на python, в котором я просто создал словарь и итерировал каждую строку, если присутствовал ключ (u-id + book-category), добавлялись значения count в противном случае, вставив пару ключ-значение в этот словарь, он делал это для каждого годичного файла в этом скрипте, поскольку некоторые файлы имели размер> 1,5 ГБ, скрипт должен был работать в течение 7/8 часов.остановите его.

Код:

    import requests
    import csv
    import pandas as pd

    Dict = {}

    with open('data_2012.csv') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            if row['a']+row['b'] not in Dict:
                Dict[row['a']+row['b']] = row['c']
##like this,iterating over the year wise files and finally writing the data to a different file.'a' and 'b' are mentioned at the first line of the data files for an easy access.

Есть ли способ, с помощью которого мы можем более элегантно достичь этой функциональности в python или написать задание Map-Reduce?

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