有一张表包含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.5GB,该脚本连续运行了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作业?