Существует таблица, которая содержит данные за 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?