#+TITLE: Incidence annuelle de la varicelle #+AUTHOR: Émile Jetzer #+DATE: 2020-05-18 #+LANGUAGE: fr # #+PROPERTY: header-args :eval never-export #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: * Incidence annuelle de la varicelle ** Obtention des données #+NAME: fichier_loin https://www.sentiweb.fr/datasets/incidence-PAY-7.csv #+NAME: fichier_local donnees.csv #+BEGIN_SRC python :session "Python" :results output :var local=fichier_local loin=fichier_loin :exports none import pandas as pd from urllib.request import urlopen from pathlib import Path fichier_local = Path(local) # Pour enlever le fichier local au besoin # fichier_local.unlink() if not fichier_local.exists(): print('Le fichier n\'existe pas...') t = urlopen(loin) print('Télécharger...') with fichier_local.open('w') as f: f.write(t.read().decode('latin-1')) print('Téléchargé.') else: print('Le fichier local existait déjà.') assert fichier_local.exists() #+END_SRC #+RESULTS: : Le fichier local existait déjà. : : #+BEGIN_SRC python :session "Python" :results value :var local=fichier_local df = pd.read_csv(local, header=1, usecols=['week', 'inc'], skiprows=0) df.head() #+END_SRC #+RESULTS: : week inc : 0 202019 319 : 1 202018 849 : 2 202017 272 : 3 202016 758 : 4 202015 1918 ** Préparer les données #+BEGIN_SRC python :session "Python" :results silent def année(semaine): return int(str(semaine)[:4]) assert année('202019') #+END_SRC #+BEGIN_SRC python :session "Python" :results output df.loc[:, 'annee'] = df.week.apply(année) résumé = df.loc[:, ['annee', 'inc']].groupby('annee').sum() # S'assurer de compter des années complètes nbr_semaines = df.groupby('annee').size() résumé = résumé.loc[nbr_semaines > 50, :] print(résumé) #+END_SRC #+RESULTS: #+begin_example inc annee 1991 656000 1992 843500 1993 593435 1994 660418 1995 654598 1996 632212 1997 624302 1998 785055 1999 646022 2000 646617 2001 563415 2002 589547 2003 678928 2004 850765 2005 654446 2006 557905 2007 778119 2008 738993 2009 875937 2010 766478 2011 642034 2012 676971 2013 658318 2014 648607 2015 649742 2016 730003 2017 556580 2018 561400 2019 540874 >>> >>> #+end_example ** Obtenir la pire et la meilleure années #+BEGIN_SRC python :session "Python" :results output pire_année = résumé.idxmax() meilleure_année = résumé.idxmin() print('Pire année:', pire_année) print('Meilleure année:', meilleure_année) #+END_SRC #+RESULTS: : Pire année: inc 2009 : dtype: int64 : Meilleure année: inc 2019 : dtype: int64 : >>>