import pandas as pd
import numpy as np
heads = ["borough","location","creation_date","total_loans","year_loans","status","type","cote","title","variant","author","collaboration","publisher","place","country","year","num_pages","language","collection","ISBN","img_url"]
data = pd.read_csv('donnees_ouverte.csv', encoding='utf-8', header=None, names=heads)
data[:4]
borough | location | creation_date | total_loans | year_loans | status | type | cote | title | variant | author | collaboration | publisher | place | country | year | num_pages | language | collection | ISBN | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Anjou | (ANJ) Jean-Corbeil / Adultes - Romans | 2008-03-09 01:21:52 | 2 | 1 | Disponible | LV_Fiction A | C823.99 B249abL | Abra : | NaN | Barfoot, Joan, | NaN | Québec-Amérique, | Montréal : | quc | c1985. | 269 p. ; | fre | NaN | 2890372588 (br.) | ... |
1 | Saint-Léonard | (SLE) Saint-Léonard / Adultes - Romans | 2010-11-25 22:41:02 | 0 | 0 | Disponible | LV_Fiction A | C823.99 B249abL | Abra : | NaN | Barfoot, Joan, | NaN | Québec-Amérique, | Montréal : | quc | c1985. | 269 p. ; | fre | NaN | 2890372588 (br.) | ... |
2 | Sans Arroundissement | Biblio-Courrier / Adultes - Romans | 2007-06-08 00:13:41 | 0 | 0 | Disponible | LV_Fiction A | C823.99 B249abL | Abra : | NaN | Barfoot, Joan, | NaN | Québec-Amérique, | Montréal : | quc | c1985. | 269 p. ; | fre | NaN | 2890372588 (br.) | ... |
3 | Côte-des-Neiges - Notre-Dame-de-Grâce | (CND) C-D-Neiges / Jeunes - BD | 2007-06-08 00:13:41 | 6 | 0 | Disponible | LV_Fiction J | NaN | L'invincible Armada / | NaN | De Moor, Bob, | NaN | Casterman, | Tournai : | be | 1978- . | v. : | fre | NaN | 2203320036 (v.2 : cart.) | ... |
4 rows × 21 columns
type_counts = data.groupby(['type'])
type_counts.aggregate(np.sum).sort('total_loans', ascending=False)
total_loans | year_loans | |
---|---|---|
type | ||
LV_Fiction J | 11131095 | 1241880 |
LV_Fiction A | 8120716 | 1143277 |
LV_Documentaire A | 4900688 | 847388 |
DVD A | 4805153 | 324077 |
LV_Documentaire J | 3007874 | 472282 |
DVD J | 1923453 | 151487 |
DC_Musique A | 1306841 | 174419 |
Nouveauté | 498511 | 140704 |
PER_Imprimé A | 440278 | 189779 |
LV_Gros caractères A | 211599 | 32831 |
PER_Imprimé J | 170694 | 54370 |
MULTI-SUPPORTS J | 166776 | 18774 |
DC_Livre sonore A | 137497 | 20550 |
JEU VIDEO SUR CONSOLE J | 91803 | 17003 |
DVD BLU-RAY A | 83691 | 17790 |
DC_Musique J | 78583 | 9491 |
JEU ÃDUCATIF J | 56056 | 7599 |
CD-ROM J | 52507 | 4454 |
MULTI-S_Langues A | 42718 | 3613 |
MULTI-SUPPORTS A | 37506 | 4657 |
JEU VIDEO SUR CONSOLE A | 35324 | 8668 |
DVD BLU-RAY J | 27094 | 4211 |
DC_Langues A | 26150 | 2794 |
CD-ROM A | 24590 | 2346 |
DC_Livre sonore J | 23759 | 3619 |
CD-ROM_Langues A | 19131 | 1520 |
PARTITION A | 16021 | 2709 |
PO_Québec | 15411 | 1487 |
DOC. CARTOGR. | 9527 | 1348 |
MULTI-S_Langues J | 9257 | 1015 |
LV_Location | 5932 | 2325 |
CD-ROM_Langues J | 4355 | 377 |
DC_Langues J | 2251 | 282 |
LV_Référence A | 2023 | 559 |
VIDEOCAS A | 2008 | 565 |
LV_Référence J | 1806 | 489 |
VIDEOCAS J | 1785 | 229 |
DVD_Langues A | 1214 | 121 |
CAS_Livre sonore A | 1174 | 281 |
LV_Livre numérique A | 768 | 134 |
DVD-ROM A | 552 | 81 |
DVD-ROM J | 440 | 59 |
PO_Autres | 359 | 44 |
PO_Canada | 356 | 83 |
LV_Gros caractères J | 339 | 37 |
VIDEOCAS_Langues A | 316 | 30 |
CAS_Musique A | 274 | 31 |
CAS_Livre sonore J | 255 | 37 |
CAS_Langues A | 206 | 16 |
AFFICHE/POSTER | 201 | 34 |
LV_Braille | 195 | 36 |
PARTITION J | 138 | 26 |
Non traité | 102 | 14 |
201 | 42 | 20 |
CAS_Musique J | 40 | 7 |
DOSSIER J | 15 | 2 |
303.49 W746L | 8 | 0 |
JEU ÃDUCATIF A | 3 | 2 |
CAS_Langues J | 3 | 0 |
VIDEOCAS_Langues J | 3 | 0 |
... | ... |
71 rows × 2 columns
len(data['title'].unique())
735657
data['borough'].value_counts()
Côte-des-Neiges - Notre-Dame-de-Grâce 403759 Saint-Laurent 322519 Rosemont - La Petite-Patrie 299252 Villeray - Saint-Michel - Parc-Extension 292581 Mercier-Hochelaga-Maisonneuve 276324 Ahuntsic - Cartierville 267121 Pierrefonds - Roxboro 265956 Montréal-Nord 258445 LaSalle 247478 Saint-Léonard 219786 Verdun 217866 Sud-Ouest 207937 Rivière-des-Prairies - Pointe-aux-Trembles 206339 Plateau-Mont-Royal 165997 Ville-Marie 163627 Anjou 135930 Outremont 83444 Sans Arroundissement 79398 L'Île Bizard - Sainte-Geneviève 61766 Lachine 57553 dtype: int64
title_counts = data.groupby(['title'])
title_counts.aggregate(np.sum).sort('total_loans', ascending=False).head(10)
total_loans | year_loans | |
---|---|---|
title | ||
Naruto. | 166289 | 10443 |
Album Garfield. | 97612 | 5250 |
Winx club. | 65142 | 3697 |
Les légendaires. | 56372 | 3710 |
Détective Conan. | 51235 | 3899 |
Les Simpson. | 49276 | 3406 |
One Piece. | 47003 | 3796 |
Yu-Gi-Oh. | 40751 | 2286 |
Fruits basket, une corbeille de fruits. | 36220 | 1906 |
Caillou. | 35773 | 2428 |
10 rows × 2 columns
eng_fiction = data[(data.type == 'LV_Fiction A' ) & (data.language == 'eng')]
eng_fiction.ix[eng_fiction['total_loans'].idxmax()]
borough Ahuntsic - Cartierville location (AHC) Ahuntsic / Adultes - Romans creation_date 2008-11-27 10:46:00 total_loans 74 year_loans 5 status Disponible type LV_Fiction A cote NaN title The brass verdict : variant NaN author Connelly, Michael, collaboration NaN publisher Little, Brown and Co., place New York : country xxu year 2008. num_pages 422 p. ; language eng collection NaN ISBN 0316166294 (hbk.) img_url NaN Name: 2415431, dtype: object
eng_counts = eng_fiction.groupby(['title', 'variant'])
eng_counts.aggregate(np.sum).sort('total_loans', ascending=False)
total_loans | year_loans | ||
---|---|---|---|
title | variant | ||
Millennium. | Girl with the dragon tattoo. | 1244 | 68 |
Nine dragons : | 9 dragons | 998 | 99 |
Fifty shades. | Fifty shades of Grey | 916 | 107 |
The lucky one : | Lucky 1. | 897 | 64 |
Millennium. | Girl who kicked the hornets' nest | 892 | 81 |
Girl who played with fire | 882 | 55 | |
Twenties girl : | 20's girl. | 822 | 50 |
61 hours : | Sixty-one hours | 802 | 107 |
10th anniversary / | Tenth anniversary | 716 | 74 |
I'll walk alone : | I will walk alone | 715 | 109 |
206 bones : | Two hundred six bones. | 708 | 60 |
The fifth witness : | 5th witness | 707 | 68 |
One day at a time / | 1 day at a time. | 698 | 48 |
A thousand splendid suns : | A 1, 000 splendid suns. | 677 | 36 |
Fifty shades. | Fifty shades darker | 675 | 73 |
44 Charles Street : | Forty-four Charles Street | 672 | 87 |
The Inn Boonsboro. | Next always | 645 | 77 |
Don't blink : | Do not blink | 632 | 58 |
The 6th target / | Sixth target | 632 | 68 |
Love the one you're with / | Love the one you are with | 603 | 48 |
You've been warned : | You have been warned. | 589 | 43 |
The 8th confession / | Eighth confession. | 588 | 62 |
The sixth man / | 6th man | 585 | 62 |
Fearless fourteen : | Fearless 14. | 580 | 49 |
The 9th judgment / | Ninth judgment | 579 | 39 |
Zero day : | 0 day | 565 | 63 |
The Hunger Games. | Catching fire | 554 | 43 |
Fire and ice : | Fire & ice. | 553 | 49 |
I've got your number : | I have got your number | 548 | 69 |
7th heaven / | Seventh heaven | 547 | 52 |
Beatrice & Virgil : | Beatrice and Virgil | 543 | 45 |
Smokin' seventeen : | Smoking 17 | 540 | 61 |
Fifty shades. | 50 shades freed | 535 | 52 |
Finger lickin' fifteen : | Finger lickin' 15. | 533 | 36 |
Alex Cross's trial / | Trial. | 521 | 44 |
Ice cold : | Rizzoli and Isles | 518 | 43 |
11/22/63 : | Eleven twenty-two sixty-three | 516 | 94 |
The Clifton chronicles. | Only time will tell | 508 | 90 |
One summer / | 1 summer | 493 | 64 |
The Inn Boonsboro. | Last boyfriend | 491 | 85 |
Code to zero / | Code to 0. | 478 | 48 |
Hunger Games. | Mockingjay | 478 | 30 |
There's something about St. Tropez : | There is something about Saint-Tropez. | 476 | 42 |
First family / | 1st family. | 476 | 46 |
Sizzling sixteen : | Sizzling 16 | 465 | 51 |
The Clifton chronicles. | Sins of the father | 460 | 111 |
For one more day / | For 1 more day. | 442 | 51 |
11th hour / | Eleventh hour | 440 | 128 |
At first sight / | At 1st sight. | 431 | 45 |
Now and then : | Now & then. | 431 | 33 |
Explosive eighteen : | Explosive 18 | 426 | 80 |
Honor thyself / | Honour thyself | 425 | 36 |
Eight days to live : | 8 days to live | 416 | 44 |
Lean mean thirteen : | Lean mean 13. | 414 | 28 |
Robert Ludlum's the Bourne deception : | Bourne deception. | 407 | 28 |
KnockOut : | Knock out | 406 | 42 |
Heartstopper : | Heart stopper | 400 | 31 |
Bones : | Alex Delaware novel. | 393 | 40 |
The first rule : | 1st rule | 390 | 35 |
Eleven minutes : | 11 minutes. | 378 | 22 |
... | ... |
5021 rows × 2 columns
fre_fiction = data[(data.type == 'LV_Fiction A' ) & (data.language == 'fre')]
fre_counts = fre_fiction.groupby(['title', 'variant'])
fre_counts.aggregate(np.sum).sort('total_loans', ascending=False)
total_loans | year_loans | ||
---|---|---|---|
title | variant | ||
A.N.G.E. | Agence nationale de gestion de l'Ãtrange. | 4519 | 382 |
Mémoires d'un quartier. | Laura | 3779 | 187 |
Aya de Yopougon. | Aya. | 3466 | 317 |
Le maître magicien Negi Ma!. | Maître magicien Negima!. | 3270 | 259 |
Magasin général. | Hommes | 3202 | 162 |
Mémoires d'un quartier. | Antoine, 1957-1958 | 3079 | 172 |
à l'ombre du clocher. | Années folles. | 3016 | 98 |
La dernière saison. | Jeanne. | 2955 | 142 |
à l'ombre du clocher. | Fils de Gabrielle | 2891 | 124 |
Millénium. | Hommes qui n'aimaient pas les femmes. | 2869 | 168 |
La poussière du temps. | Rue de la Glacière. | 2845 | 139 |
Mémoires d'un quartier. | Ãvangéline, 1958-1959. | 2833 | 195 |
Chère Laurette. | Des rêves plein la tête | 2831 | 166 |
à l'ombre du clocher. | Amours interdites. | 2770 | 116 |
Au bord de la rivière. | Baptiste | 2743 | 194 |
La dernière saison. | Thomas | 2717 | 172 |
Un bonheur si fragile. | Drame | 2717 | 180 |
Ikigami, préavis de mort. | Ikigami. | 2704 | 434 |
Millénium. | Reine dans le palais des courants d'air | 2679 | 163 |
Un bonheur si fragile. | Engagement | 2623 | 170 |
Mémoires d'un quartier. | Bernadette, 1960-1962 | 2590 | 226 |
La poussière du temps. | Sur le boulevard. | 2578 | 115 |
Les portes de Québec. | Faubourg Saint-Roch | 2523 | 93 |
La poussière du temps. | Au bout de la route. | 2495 | 102 |
Chère Laurette. | Retour | 2489 | 141 |
Mémoires d'un quartier. | Adrien, 1962-1963 | 2477 | 238 |
Marcel, 1965-1966 | 2450 | 216 | |
à l'ombre du clocher. | Au rythme des saisons | 2442 | 132 |
Au bord de la rivière. | Camille | 2440 | 259 |
Mémoires d'un quartier. | Francine, 1963-1965 | 2435 | 239 |
La première nuit : | 1ère nuit | 2380 | 179 |
Millénium. | Fille qui rêvait d'un bidon d'essence et d'une allumette. | 2377 | 138 |
Mémoires d'un quartier. | Antoine, la suite, 1968-1969 | 2294 | 247 |
La diaspora des Desrosiers. | Traversée du continent | 2269 | 132 |
Les soeurs Deblois. | Charlotte | 2266 | 122 |
Mémoires d'un quartier. | Laura, la suite, 1966-1968 | 2246 | 259 |
La poussière du temps. | Rue Notre-Dame. | 2246 | 122 |
Chère Laurette. | à l'écoute du temps | 2243 | 165 |
Un bonheur si fragile. | Amours : | 2242 | 263 |
Hell.com / | Hell com | 2188 | 167 |
Les folles années. | Héritiers : | 2169 | 145 |
Mémoires d'un quartier. | Ãvangéline, la suite, 1969-1970 | 2158 | 312 |
Fanette. | à la conquête de la haute ville | 2144 | 88 |
Un bonheur si fragile. | Ãpreuves | 2122 | 145 |
Mémoires d'un quartier. | Bernadette, la suite, 1970-1972 | 2115 | 314 |
La force de vivre. | Rêves d'Edmond et Ãmilie | 2101 | 89 |
XXX holic. | XXXholic. | 2094 | 304 |
Quatre saisons de fiançailles. | Rêves en blanc | 2076 | 134 |
Magasin général. | Marie | 2072 | 121 |
Chère Laurette. | Fuite du temps | 2071 | 177 |
Les soeurs Deblois. | Ãmilie | 2057 | 129 |
Anne | 2051 | 137 | |
La diaspora des Desrosiers. | Traversée de la ville. | 2043 | 133 |
Félicité. | Pasteur et la brebis | 2038 | 170 |
Au bord de la rivière. | Xavier | 2033 | 323 |
Quatre jours de pluie : | 4 jours de pluie | 2015 | 188 |
Les soeurs Deblois. | Demi-frère | 1994 | 135 |
Les années du silence. | Délivrance | 1972 | 98 |
Tourmente | 1942 | 86 | |
Sept jours pour une éternité-- : | 7 jours pour une éternité -- | 1936 | 94 |
... | ... |
17185 rows × 2 columns
fre_non_fiction = data[(data.type == 'LV_Documentaire A' ) & (data.language == 'fre')]
fre_nf_counts = fre_non_fiction.groupby(['title'])
fre_nf_counts.aggregate(np.sum).sort('total_loans', ascending=False)
total_loans | year_loans | |
---|---|---|
title | ||
Conduire un véhicule de promenade / | 10016 | 418 |
Guide de la route / | 8954 | 453 |
New York / | 7496 | 1084 |
Cuba / | 5233 | 440 |
Paris / | 4972 | 582 |
La grammaire pour tous : | 3485 | 218 |
L'art de conjuguer : | 3443 | 286 |
Rome / | 3239 | 502 |
Costa Rica / | 3173 | 228 |
Mexique / | 3134 | 284 |
Portugal / | 3105 | 365 |
Londres / | 2933 | 472 |
Math-o-matique : | 2903 | 188 |
Pour réussir math 436 : | 2476 | 194 |
Thaïlande / | 2440 | 288 |
Barcelone / | 2378 | 304 |
Vietnam / | 2373 | 197 |
Turquie / | 2358 | 361 |
Italie / | 2349 | 247 |
Maroc / | 2283 | 386 |
Chine / | 2271 | 309 |
Floride / | 2249 | 211 |
Le dessin de manga. | 2217 | 202 |
Le secret / | 2211 | 107 |
Espagne / | 2186 | 250 |
Mange, prie, aime : | 2091 | 61 |
Venise / | 2050 | 414 |
La vie comme je l'aime. | 1977 | 246 |
Conduire un véhicule lourd / | 1958 | 159 |
Californie / | 1895 | 250 |
Ma grammaire / | 1879 | 156 |
Oeuvres complètes / | 1871 | 313 |
Croatie / | 1831 | 280 |
Parce qu'on a tous de la visite-- : | 1809 | 87 |
L'orthographe pour tous : | 1804 | 188 |
Prague / | 1701 | 272 |
Provence / | 1693 | 276 |
Oeuvres / | 1677 | 249 |
Argentine / | 1663 | 229 |
Pasta et cetera à la di Stasio : | 1636 | 73 |
Canada / | 1605 | 341 |
Comment j'ai vaincu la douleur et l'inflammation chronique par l'alimentation / | 1514 | 87 |
Chagrin d'école / | 1512 | 93 |
Inde / | 1510 | 193 |
France / | 1491 | 180 |
Pérou / | 1461 | 203 |
Japon / | 1440 | 189 |
Boston / | 1434 | 265 |
Québec / | 1432 | 304 |
Histoire populaire du Québec / | 1381 | 199 |
Corse / | 1358 | 263 |
Janine Sutto : | 1354 | 144 |
Berlin / | 1347 | 213 |
Cuisiner avec les aliments contre le cancer / | 1343 | 104 |
Irlande / | 1320 | 283 |
Andalousie / | 1298 | 195 |
Entre cuisine et quincaillerie / | 1293 | 77 |
Le français au bureau / | 1260 | 93 |
Le meilleur de soi / | 1245 | 79 |
Nouvelle-Angleterre / | 1241 | 254 |
... | ... |
203529 rows × 2 columns
eng_non_fiction = data[(data.type == 'LV_Documentaire A' ) & (data.language == 'eng')]
eng_nf_counts = eng_non_fiction.groupby(['title'])
eng_nf_counts.aggregate(np.sum).sort('total_loans', ascending=False)
total_loans | year_loans | |
---|---|---|
title | ||
Driving a passenger vehicle / | 3490 | 189 |
Driver's handbook / | 2960 | 195 |
National Geographic traveler. | 2448 | 429 |
The secret / | 768 | 52 |
Driving a heavy vehicle / | 755 | 105 |
Eat, pray, love : | 708 | 27 |
Bilingual visual dictionary. | 669 | 70 |
A new earth : | 652 | 41 |
The voice of Egypt : | 649 | 2 |
Master the basics. | 506 | 30 |
New french with ease | 505 | 38 |
Oprah : | 475 | 38 |
Outliers : | 470 | 23 |
The shock doctrine : | 466 | 28 |
Intermediate English grammar / | 416 | 16 |
New England / | 407 | 87 |
Real life : | 397 | 42 |
The everything French grammar book : | 394 | 18 |
Chicken soup for the soul : | 391 | 94 |
Moon handbooks. | 389 | 119 |
Blink : | 376 | 20 |
Steve Jobs / | 370 | 51 |
Cook with Jamie : | 367 | 22 |
Painless French / | 355 | 33 |
Canada : | 348 | 72 |
Scott 2013 standard postage stamp catalogue / | 345 | 73 |
Elementary English grammar / | 333 | 18 |
Committed : | 323 | 27 |
Florida / | 314 | 30 |
Halloween : | 305 | 51 |
How to prepare for the TOEFL test : | 303 | 34 |
Life : | 301 | 33 |
Fifty shades. | 300 | 30 |
Time out. | 299 | 29 |
O's guide to life : | 294 | 29 |
Argentina / | 287 | 42 |
Jamie's food revolution : | 284 | 17 |
Infidel / | 282 | 18 |
The complete idiot's guide to French verbs / | 281 | 26 |
Italy / | 276 | 66 |
God is not great : | 272 | 25 |
The power of now : | 271 | 15 |
O's big book of happiness : | 268 | 27 |
Teach yourself visually Excel 2007 / | 266 | 9 |
India / | 259 | 37 |
Scott 2011 standard postage stamp catalogue / | 259 | 57 |
A long way gone : | 256 | 21 |
Spain / | 253 | 51 |
French grammar / | 253 | 9 |
What to expect when you're expecting / | 253 | 16 |
Time Out. | 248 | 46 |
The book of secrets : | 246 | 13 |
My life / | 246 | 35 |
The God delusion / | 244 | 25 |
The complete idiot's guide to learning French / | 242 | 14 |
The glass castle : | 241 | 9 |
Life / | 239 | 31 |
Smart shopping Montreal / | 238 | 32 |
Great answers! great questions! : | 234 | 24 |
The pregnancy bible : | 234 | 19 |
... | ... |
104613 rows × 2 columns
top_boroughs = data.groupby(['borough','title'])
df2 = top_boroughs.aggregate(sum).reset_index().sort(['borough','total_loans'],ascending=[True,False]).set_index(['borough'])
df3 = pd.DataFrame()
for indx in df2.index.unique():
df3 = pd.concat([df3, df2.ix[indx].iloc[0:3]])
df3
title | total_loans | year_loans | |
---|---|---|---|
Ahuntsic - Cartierville | Naruto. | 24271 | 1095 |
Ahuntsic - Cartierville | Album Garfield. | 10473 | 453 |
Ahuntsic - Cartierville | Winx club. | 8330 | 368 |
Anjou | Naruto. | 5867 | 315 |
Anjou | Album Garfield. | 2921 | 201 |
Anjou | Winx club. | 2755 | 201 |
Côte-des-Neiges - Notre-Dame-de-Grâce | Naruto. | 17039 | 702 |
Côte-des-Neiges - Notre-Dame-de-Grâce | Détective Conan. | 11472 | 471 |
Côte-des-Neiges - Notre-Dame-de-Grâce | Album Garfield. | 11023 | 446 |
L'Île Bizard - Sainte-Geneviève | Album Garfield. | 3079 | 178 |
L'Île Bizard - Sainte-Geneviève | Les Simpson. | 1205 | 47 |
L'Île Bizard - Sainte-Geneviève | Les légendaires. | 857 | 37 |
LaSalle | Naruto. | 8212 | 1051 |
LaSalle | Détective Conan. | 3232 | 618 |
LaSalle | Yu-Gi-Oh. | 3124 | 603 |
Lachine | Les légendaires. | 931 | 86 |
Lachine | Mémoires d'un quartier. | 840 | 169 |
Lachine | Boule & Bill. | 735 | 64 |
Mercier-Hochelaga-Maisonneuve | Naruto. | 17779 | 1017 |
Mercier-Hochelaga-Maisonneuve | Album Garfield. | 12373 | 789 |
Mercier-Hochelaga-Maisonneuve | Les Simpson. | 7343 | 463 |
Montréal-Nord | Naruto. | 8516 | 921 |
Montréal-Nord | Album Garfield. | 4115 | 408 |
Montréal-Nord | Les Simpson. | 2691 | 450 |
Outremont | Naruto. | 2879 | 249 |
Outremont | Caillou. | 1804 | 113 |
Outremont | Les p'tits diables. | 1383 | 64 |
Pierrefonds - Roxboro | Naruto. | 7629 | 390 |
Pierrefonds - Roxboro | Les légendaires. | 5459 | 371 |
Pierrefonds - Roxboro | Album Garfield. | 5119 | 176 |
Plateau-Mont-Royal | Naruto. | 6314 | 207 |
Plateau-Mont-Royal | Album Garfield. | 4430 | 272 |
Plateau-Mont-Royal | Le trésor du pirate Boom [jeu] | 3760 | 139 |
Rivière-des-Prairies - Pointe-aux-Trembles | Naruto. | 14329 | 682 |
Rivière-des-Prairies - Pointe-aux-Trembles | One Piece. | 6571 | 325 |
Rivière-des-Prairies - Pointe-aux-Trembles | Bleach. | 5074 | 430 |
Rosemont - La Petite-Patrie | Naruto. | 7446 | 753 |
Rosemont - La Petite-Patrie | One Piece. | 7179 | 622 |
Rosemont - La Petite-Patrie | Album Garfield. | 6985 | 469 |
Saint-Laurent | Winx club. | 4455 | 417 |
Saint-Laurent | Détective Conan. | 3551 | 168 |
Saint-Laurent | Album Garfield. | 3078 | 138 |
Saint-Léonard | Naruto. | 3999 | 232 |
Saint-Léonard | Album Garfield. | 2203 | 192 |
Saint-Léonard | Paris Match [Saint-Léonard] | 1653 | 797 |
Sans Arroundissement | Naruto. | 1376 | 265 |
Sans Arroundissement | Album Garfield. | 1351 | 122 |
Sans Arroundissement | Le Lundi [Biblio-courrier] | 984 | 583 |
Sud-Ouest | Naruto. | 10227 | 786 |
Sud-Ouest | Album Garfield. | 6310 | 398 |
Sud-Ouest | Détective Conan. | 4978 | 384 |
Verdun | Les légendaires. | 1879 | 164 |
Verdun | Winx club. | 1514 | 203 |
Verdun | Nelson. | 1396 | 102 |
Ville-Marie | Naruto. | 8571 | 456 |
Ville-Marie | Yu-Gi-Oh. | 2757 | 116 |
Ville-Marie | Inu Yasha. | 2257 | 154 |
Villeray - Saint-Michel - Parc-Extension | Naruto. | 18822 | 967 |
Villeray - Saint-Michel - Parc-Extension | Album Garfield. | 13788 | 454 |
Villeray - Saint-Michel - Parc-Extension | Winx club. | 10149 | 314 |
60 rows × 3 columns
top_eng = eng_fiction.groupby(['borough','title'])
df2 = top_eng.aggregate(sum).reset_index().sort(['borough','total_loans'],ascending=[True,False]).set_index(['borough'])
df3 = pd.DataFrame()
for indx in df2.index.unique():
df3 = pd.concat([df3, df2.ix[indx].iloc[0:3]])
df3
title | total_loans | year_loans | |
---|---|---|---|
Ahuntsic - Cartierville | Millennium. | 267 | 5 |
Ahuntsic - Cartierville | Fifty shades. | 213 | 19 |
Ahuntsic - Cartierville | Harry Potter and the deathly hallows / | 152 | 9 |
Anjou | Fifty shades. | 164 | 12 |
Anjou | Tabous : roman | 81 | 11 |
Anjou | Millennium. | 77 | 6 |
Côte-des-Neiges - Notre-Dame-de-Grâce | Millennium. | 631 | 30 |
Côte-des-Neiges - Notre-Dame-de-Grâce | A song of ice and fire. | 338 | 24 |
Côte-des-Neiges - Notre-Dame-de-Grâce | The road / | 259 | 16 |
L'Île Bizard - Sainte-Geneviève | Percy Jackson & the Olympians. | 119 | 8 |
L'Île Bizard - Sainte-Geneviève | A song of ice and fire. | 58 | 10 |
L'Île Bizard - Sainte-Geneviève | Inheritance. | 49 | 15 |
LaSalle | Naruto. | 1223 | 204 |
LaSalle | Fifty shades. | 380 | 43 |
LaSalle | The walking dead. | 302 | 51 |
Lachine | Diary of a wimpy kid. | 169 | 13 |
Lachine | The walking dead. | 165 | 16 |
Lachine | Fifty shades. | 75 | 11 |
Mercier-Hochelaga-Maisonneuve | The overlook : | 123 | 2 |
Mercier-Hochelaga-Maisonneuve | Millennium. | 98 | 9 |
Mercier-Hochelaga-Maisonneuve | Tribute / | 91 | 4 |
Montréal-Nord | Fifty shades. | 69 | 11 |
Montréal-Nord | A song of ice and fire. | 51 | 10 |
Montréal-Nord | Midori days. 2 | 39 | 5 |
Outremont | A song of ice and fire. | 87 | 13 |
Outremont | Millennium. | 73 | 11 |
Outremont | [The wheel of time. | 72 | 5 |
Pierrefonds - Roxboro | Millennium. | 325 | 22 |
Pierrefonds - Roxboro | Three complete novels : | 280 | 23 |
Pierrefonds - Roxboro | Bakuman. | 251 | 65 |
Plateau-Mont-Royal | Millennium. | 144 | 8 |
Plateau-Mont-Royal | The man who smiled / | 100 | 3 |
Plateau-Mont-Royal | Remember me? / | 92 | 5 |
Rivière-des-Prairies - Pointe-aux-Trembles | Tabous : roman | 119 | 7 |
Rivière-des-Prairies - Pointe-aux-Trembles | Fifty shades. | 93 | 3 |
Rivière-des-Prairies - Pointe-aux-Trembles | Millennium. | 83 | 7 |
Rosemont - La Petite-Patrie | Millennium. | 150 | 10 |
Rosemont - La Petite-Patrie | The lost symbol : | 67 | 3 |
Rosemont - La Petite-Patrie | The drop : | 60 | 5 |
Saint-Laurent | Batman : | 493 | 71 |
Saint-Laurent | Fifty shades. | 255 | 45 |
Saint-Laurent | Superman : | 188 | 36 |
Saint-Léonard | Fifty shades. | 82 | 9 |
Saint-Léonard | Private : | 53 | 16 |
Saint-Léonard | The help / | 51 | 6 |
Sans Arroundissement | Black Hills / | 24 | 5 |
Sans Arroundissement | Deeply Odd / | 22 | 18 |
Sans Arroundissement | Millennium. | 16 | 3 |
Sud-Ouest | Millennium. | 302 | 18 |
Sud-Ouest | Inubaka, Crazy for dogs. | 211 | 24 |
Sud-Ouest | Fifty shades. | 150 | 13 |
Verdun | Fifty shades. | 111 | 5 |
Verdun | A song of ice and fire. | 98 | 15 |
Verdun | Millennium. | 83 | 12 |
Ville-Marie | Rozen maiden. | 43 | 2 |
Ville-Marie | Aie woze djoking / | 29 | 0 |
Ville-Marie | Invisible / | 28 | 3 |
Villeray - Saint-Michel - Parc-Extension | Millennium. | 353 | 18 |
Villeray - Saint-Michel - Parc-Extension | Fifty shades. | 187 | 20 |
Villeray - Saint-Michel - Parc-Extension | The road / | 108 | 2 |
60 rows × 3 columns
top_fre = fre_fiction.groupby(['borough','title'])
df2 = top_fre.aggregate(sum).reset_index().sort(['borough','total_loans'],ascending=[True,False]).set_index(['borough'])
df3 = pd.DataFrame()
for indx in df2.index.unique():
df3 = pd.concat([df3, df2.ix[indx].iloc[0:3]])
df3
title | total_loans | year_loans | |
---|---|---|---|
Ahuntsic - Cartierville | Mémoires d'un quartier. | 2978 | 222 |
Ahuntsic - Cartierville | À l'ombre du clocher. | 1526 | 41 |
Ahuntsic - Cartierville | Les chevaliers d'Émeraude. | 1468 | 104 |
Anjou | Mémoires d'un quartier. | 1185 | 180 |
Anjou | Lieutenant Eve Dallas. | 852 | 91 |
Anjou | Les années du silence. | 634 | 33 |
Côte-des-Neiges - Notre-Dame-de-Grâce | L'histoire secrète. | 1262 | 126 |
Côte-des-Neiges - Notre-Dame-de-Grâce | La geste des chevaliers dragons. | 1232 | 107 |
Côte-des-Neiges - Notre-Dame-de-Grâce | Trolls de Troy. | 1228 | 105 |
L'Île Bizard - Sainte-Geneviève | Mémoires d'un quartier. | 456 | 32 |
L'Île Bizard - Sainte-Geneviève | Les chevaliers d'Émeraude. | 450 | 49 |
L'Île Bizard - Sainte-Geneviève | À l'ombre du clocher. | 305 | 8 |
LaSalle | Naruto. | 5697 | 737 |
LaSalle | One Piece. | 2948 | 541 |
LaSalle | Détective Conan. | 1860 | 501 |
Lachine | Mémoires d'un quartier. | 840 | 169 |
Lachine | Les nombrils. | 301 | 17 |
Lachine | Au bord de la rivière. | 289 | 78 |
Mercier-Hochelaga-Maisonneuve | Mémoires d'un quartier. | 3309 | 246 |
Mercier-Hochelaga-Maisonneuve | Lieutenant Eve Dallas. | 2034 | 121 |
Mercier-Hochelaga-Maisonneuve | A.N.G.E. | 1812 | 93 |
Montréal-Nord | Naruto. | 6956 | 790 |
Montréal-Nord | Bleach. | 1792 | 169 |
Montréal-Nord | Mémoires d'un quartier. | 1530 | 229 |
Outremont | Les psy. | 492 | 52 |
Outremont | Les naufragés d'Ythaq. | 457 | 9 |
Outremont | Sillage. | 426 | 32 |
Pierrefonds - Roxboro | Mémoires d'un quartier. | 1462 | 118 |
Pierrefonds - Roxboro | Les chevaliers d'Émeraude. | 1248 | 62 |
Pierrefonds - Roxboro | Le journal d'Aurélie Laflamme. | 1009 | 30 |
Plateau-Mont-Royal | L'histoire secrète. | 1367 | 125 |
Plateau-Mont-Royal | Magasin général. | 1079 | 45 |
Plateau-Mont-Royal | Trolls de Troy. | 1006 | 69 |
Rivière-des-Prairies - Pointe-aux-Trembles | Mémoires d'un quartier. | 4566 | 288 |
Rivière-des-Prairies - Pointe-aux-Trembles | Lieutenant Eve Dallas. | 1735 | 114 |
Rivière-des-Prairies - Pointe-aux-Trembles | La poussière du temps. | 1655 | 36 |
Rosemont - La Petite-Patrie | Mémoires d'un quartier. | 2020 | 243 |
Rosemont - La Petite-Patrie | Magasin général. | 1479 | 52 |
Rosemont - La Petite-Patrie | Walking dead. | 1214 | 96 |
Saint-Laurent | Mémoires d'un quartier. | 813 | 96 |
Saint-Laurent | Walking dead. | 507 | 113 |
Saint-Laurent | L'histoire secrète. | 359 | 96 |
Saint-Léonard | Mémoires d'un quartier. | 926 | 36 |
Saint-Léonard | Un bonheur si fragile. | 289 | 19 |
Saint-Léonard | A.N.G.E. | 267 | 22 |
Sans Arroundissement | Mémoires d'un quartier. | 615 | 118 |
Sans Arroundissement | Un bonheur si fragile. | 295 | 32 |
Sans Arroundissement | À l'ombre du clocher. | 287 | 12 |
Sud-Ouest | Mémoires d'un quartier. | 1621 | 131 |
Sud-Ouest | Bleach. | 1149 | 100 |
Sud-Ouest | Death note. | 1091 | 67 |
Verdun | One Piece. | 826 | 193 |
Verdun | Mémoires d'un quartier. | 566 | 52 |
Verdun | Les chevaliers d'Émeraude. | 316 | 47 |
Ville-Marie | Samuraï Deeper Kyô. | 1155 | 58 |
Ville-Marie | Mémoires d'un quartier. | 1142 | 160 |
Ville-Marie | Death note. | 1038 | 65 |
Villeray - Saint-Michel - Parc-Extension | Mémoires d'un quartier. | 2199 | 204 |
Villeray - Saint-Michel - Parc-Extension | Magasin général. | 1860 | 79 |
Villeray - Saint-Michel - Parc-Extension | L'histoire secrète. | 1695 | 241 |
60 rows × 3 columns
non_fic = data[data.type == 'LV_Documentaire A' ]
top_nf = non_fic.groupby(['borough','title'])
df2 = top_nf.aggregate(sum).reset_index().sort(['borough','total_loans'],ascending=[True,False]).set_index(['borough'])
df3 = pd.DataFrame()
for indx in df2.index.unique():
df3 = pd.concat([df3, df2.ix[indx].iloc[0:3]])
df3
title | total_loans | year_loans | |
---|---|---|---|
Ahuntsic - Cartierville | Guide de la route / | 1418 | 48 |
Ahuntsic - Cartierville | Conduire un véhicule de promenade / | 1213 | 37 |
Ahuntsic - Cartierville | New York / | 1161 | 74 |
Anjou | Guide de la route / | 616 | 38 |
Anjou | Conduire un véhicule de promenade / | 511 | 28 |
Anjou | L'art de conjuguer : | 184 | 17 |
Côte-des-Neiges - Notre-Dame-de-Grâce | Conduire un véhicule de promenade / | 1300 | 31 |
Côte-des-Neiges - Notre-Dame-de-Grâce | Driving a passenger vehicle / | 882 | 18 |
Côte-des-Neiges - Notre-Dame-de-Grâce | New York / | 620 | 101 |
L'Île Bizard - Sainte-Geneviève | Conduire un véhicule de promenade / | 106 | 9 |
L'Île Bizard - Sainte-Geneviève | Paris / | 100 | 12 |
L'Île Bizard - Sainte-Geneviève | Aux confins de Montréal : l'île Bizard, des or... | 99 | 11 |
LaSalle | Je cuisine : | 563 | 77 |
LaSalle | Guide de la route / | 370 | 16 |
LaSalle | Je décore : | 340 | 86 |
Lachine | Guide de la route / | 204 | 8 |
Lachine | Conduire un véhicule de promenade / | 127 | 6 |
Lachine | Scott 2013 standard postage stamp catalogue / | 104 | 0 |
Mercier-Hochelaga-Maisonneuve | Cuba / | 835 | 48 |
Mercier-Hochelaga-Maisonneuve | New York / | 739 | 56 |
Mercier-Hochelaga-Maisonneuve | Guide de la route / | 677 | 22 |
Montréal-Nord | Guide de la route / | 521 | 16 |
Montréal-Nord | Conduire un véhicule de promenade / | 487 | 14 |
Montréal-Nord | Math-o-matique : | 234 | 28 |
Outremont | New York / | 439 | 38 |
Outremont | Paris / | 362 | 35 |
Outremont | Portugal / | 224 | 16 |
Pierrefonds - Roxboro | Guide de la route / | 595 | 20 |
Pierrefonds - Roxboro | Conduire un véhicule de promenade / | 563 | 22 |
Pierrefonds - Roxboro | Driver's handbook / | 495 | 18 |
Plateau-Mont-Royal | New York / | 605 | 63 |
Plateau-Mont-Royal | Guide de la route / | 489 | 23 |
Plateau-Mont-Royal | Cuba / | 424 | 20 |
Rivière-des-Prairies - Pointe-aux-Trembles | Le dessin de manga. | 886 | 57 |
Rivière-des-Prairies - Pointe-aux-Trembles | New York / | 645 | 67 |
Rivière-des-Prairies - Pointe-aux-Trembles | Cuba / | 388 | 36 |
Rosemont - La Petite-Patrie | Conduire un véhicule de promenade / | 875 | 34 |
Rosemont - La Petite-Patrie | Guide de la route / | 782 | 63 |
Rosemont - La Petite-Patrie | New York / | 723 | 113 |
Saint-Laurent | Driver's handbook / | 394 | 33 |
Saint-Laurent | Conduire un véhicule de promenade / | 351 | 24 |
Saint-Laurent | Paris / | 336 | 85 |
Saint-Léonard | L'art de conjuguer : | 241 | 18 |
Saint-Léonard | Guide de la route / | 233 | 21 |
Saint-Léonard | La grammaire pour tous : | 174 | 11 |
Sans Arroundissement | Y'a des moments si merveilleux--" :" | 52 | 5 |
Sans Arroundissement | L'énigmatique Céline Dion : | 49 | 2 |
Sans Arroundissement | Thérèse Dion : | 47 | 2 |
Sud-Ouest | Conduire un véhicule de promenade / | 583 | 33 |
Sud-Ouest | Guide de la route / | 316 | 16 |
Sud-Ouest | New York / | 293 | 33 |
Verdun | Conduire un véhicule de promenade / | 279 | 25 |
Verdun | New York / | 205 | 61 |
Verdun | Guide de la route / | 168 | 13 |
Ville-Marie | New York / | 273 | 41 |
Ville-Marie | Conduire un véhicule de promenade / | 244 | 20 |
Ville-Marie | Guide de la route / | 204 | 10 |
Villeray - Saint-Michel - Parc-Extension | Conduire un véhicule de promenade / | 1733 | 66 |
Villeray - Saint-Michel - Parc-Extension | Guide de la route / | 1416 | 68 |
Villeray - Saint-Michel - Parc-Extension | La grammaire pour tous : | 628 | 16 |
60 rows × 3 columns