In [1]:
from monthly_totals import *

In [2]:
data = get_precip_data()

In [3]:
totals_pd, counts_pd = pivot_months_pandas(data)

In [4]:
totals_loop, counts_loop = pivot_months_loops(data)

In [5]:
totals_loop  # look how nicely Jupyter displays a DataFrame...


Out[5]:
month 2016-01 2016-02 2016-03 2016-04 2016-05 2016-06 2016-07 2016-08 2016-09 2016-10 2016-11 2016-12
name
BURNABY SIMON FRASER U 1809 1482 2159 374 606 428 442 68 956 1429 1349 1846
CALGARY INTL A 121 22 46 40 683 616 2061 834 253 276 27 224
GANDER INTL A 896 1232 992 1106 1236 1015 1264 1096 1026 2422 1184 1099
HALIFAX INTL A 1491 1473 1452 1595 1001 725 734 445 845 2185 1305 1835
REVELSTOKE 930 561 533 204 546 748 662 274 785 1620 1293 295
SHERBROOKE 183 982 621 471 667 671 525 1599 433 1176 594 627
TORONTO LESTER B. PEARSON INT' 363 491 729 681 346 269 399 667 663 452 497 821
VANCOUVER INTL A 1682 1304 1616 242 516 582 328 138 784 2034 2402 1520
YELLOWKNIFE A 220 90 28 120 98 306 154 280 488 158 176 116

In [6]:
abs(totals_pd - totals_loop).values.sum() # the two totals should be the same


Out[6]:
0

In [7]:
abs(counts_pd - counts_loop).values.sum() # ...counts too.


Out[7]:
0

In [8]:
%timeit pivot_months_pandas(data)


10 loops, best of 3: 31.3 ms per loop

In [9]:
%timeit pivot_months_loops(data)


1 loop, best of 3: 840 ms per loop