In [40]:
import csv
from collections import defaultdict
quizzes = defaultdict(list)
difficulty = {}
with open('mxit_app_data/scores.csv') as file:
    data = csv.reader(file)
    for row in data:
        if row[0] == 'id':
            continue
        difficulty[row[2]] = row[5], row[4]
with open('mxit_app_data/quiz.csv') as file:
    data = csv.reader(file)
    
    for row in data:
        if row[0] == 'id':
            continue
        try:
            #if len(row[6]):
                quizzes[row[3]].append(int(row[6]))
        except ValueError:
            print row
            break
print max(x for x in quizzes)
print len(quizzes)


['4', 'ADDSUB', '2013-03-17 22:09:53.287065', '57', '', '', '', '', '', '']
619
3

In [35]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
plt.title('scores over time')

x = []
y=[]
for quiz in quizzes.itervalues():
    for i, v in enumerate(quiz):
        x.append(i)
        y.append(v)
plt.scatter(x,y)
plt.show()


---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-35-7299dc122b20> in <module>()
     11         y.append(v)
     12 plt.scatter(x,y)
---> 13 plt.show()

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.pyc in show(*args, **kw)
    137     """
    138     global _show
--> 139     _show(*args, **kw)
    140 
    141 

/Library/Python/2.7/site-packages/IPython/kernel/zmq/pylab/backend_inline.pyc in show(close)
    101     try:
    102         for figure_manager in Gcf.get_all_fig_managers():
--> 103             display(figure_manager.canvas.figure)
    104     finally:
    105         show._to_draw = []

/Library/Python/2.7/site-packages/IPython/core/display.pyc in display(*objs, **kwargs)
    116         format = InteractiveShell.instance().display_formatter.format
    117         for obj in objs:
--> 118             format_dict, md_dict = format(obj, include=include, exclude=exclude)
    119             if metadata:
    120                 # kwarg-specified metadata gets precedence

/Library/Python/2.7/site-packages/IPython/core/formatters.pyc in format(self, obj, include, exclude)
    150             md = None
    151             try:
--> 152                 data = formatter(obj)
    153             except:
    154                 # FIXME: log the exception

/Library/Python/2.7/site-packages/IPython/core/formatters.pyc in __call__(self, obj)
    270                 for cls in pretty._get_mro(obj_class):
    271                     if cls in self.type_printers:
--> 272                         return self.type_printers[cls](obj)
    273                     else:
    274                         printer = self._in_deferred_types(cls)

/Library/Python/2.7/site-packages/IPython/core/pylabtools.pyc in <lambda>(fig)
    174     if fmt == 'png':
    175         svg_formatter.type_printers.pop(Figure, None)
--> 176         png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png'))
    177     elif fmt in ('png2x', 'retina'):
    178         svg_formatter.type_printers.pop(Figure, None)

/Library/Python/2.7/site-packages/IPython/core/pylabtools.pyc in print_figure(fig, fmt)
    108         fmt = 'png'
    109     fig.canvas.print_figure(bytes_io, format=fmt, bbox_inches='tight',
--> 110                             facecolor=fc, edgecolor=ec, dpi=dpi)
    111     data = bytes_io.getvalue()
    112     return data

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/backend_bases.pyc in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
   1981                     orientation=orientation,
   1982                     dryrun=True,
-> 1983                     **kwargs)
   1984                 renderer = self.figure._cachedRenderer
   1985                 bbox_inches = self.figure.get_tightbbox(renderer)

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/backends/backend_agg.pyc in print_png(self, filename_or_obj, *args, **kwargs)
    467 
    468     def print_png(self, filename_or_obj, *args, **kwargs):
--> 469         FigureCanvasAgg.draw(self)
    470         renderer = self.get_renderer()
    471         original_dpi = renderer.dpi

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/backends/backend_agg.pyc in draw(self)
    419 
    420         try:
--> 421             self.figure.draw(self.renderer)
    422         finally:
    423             RendererAgg.lock.release()

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
     53     def draw_wrapper(artist, renderer, *args, **kwargs):
     54         before(artist, renderer)
---> 55         draw(artist, renderer, *args, **kwargs)
     56         after(artist, renderer)
     57 

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/figure.pyc in draw(self, renderer)
    896         dsu.sort(key=itemgetter(0))
    897         for zorder, a, func, args in dsu:
--> 898             func(*args)
    899 
    900         renderer.close_group('figure')

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
     53     def draw_wrapper(artist, renderer, *args, **kwargs):
     54         before(artist, renderer)
---> 55         draw(artist, renderer, *args, **kwargs)
     56         after(artist, renderer)
     57 

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.pyc in draw(self, renderer, inframe)
   1995 
   1996         for zorder, a in dsu:
-> 1997             a.draw(renderer)
   1998 
   1999         renderer.close_group('axes')

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
     53     def draw_wrapper(artist, renderer, *args, **kwargs):
     54         before(artist, renderer)
---> 55         draw(artist, renderer, *args, **kwargs)
     56         after(artist, renderer)
     57 

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/collections.pyc in draw(self, renderer)
    612                     (np.sqrt(x) * self.figure.dpi / 72.0))
    613                 for x in self._sizes]
--> 614         return Collection.draw(self, renderer)
    615 
    616 class PolyCollection(Collection):

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
     53     def draw_wrapper(artist, renderer, *args, **kwargs):
     54         before(artist, renderer)
---> 55         draw(artist, renderer, *args, **kwargs)
     56         after(artist, renderer)
     57 

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/collections.pyc in draw(self, renderer)
    236             gc, transform.frozen(), paths, self.get_transforms(),
    237             offsets, transOffset, self.get_facecolor(), self.get_edgecolor(),
--> 238             self._linewidths, self._linestyles, self._antialiaseds, self._urls)
    239 
    240         gc.restore()

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/backends/backend_agg.pyc in draw_path_collection(self, *kl, **kw)
     96 
     97     def draw_path_collection(self, *kl, **kw):
---> 98         return self._renderer.draw_path_collection(*kl, **kw)
     99 
    100     def _update_methods(self):

KeyboardInterrupt: 

In [33]:
sum(len(x) for x in quizzes)/len(quizzes)


Out[33]:
5

In [38]:
max(len(x) for x in quizzes)


Out[38]:
6

In [ ]: