"| indicator | Code de l'indicateur de surveillance |\n",
"| inc | Estimation de l'incidence de consultations en nombre de cas |\n",
"| inc_low | Estimation de la borne inférieure de l'IC95% du nombre de cas de consultation |\n",
"| inc_up | Estimation de la borne supérieure de l'IC95% du nombre de cas de consultation |\n",
"| inc100 | Estimation du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |\n",
"| inc100_low | Estimation de la borne inférieure de l'IC95% du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |\n",
"| inc100_up | Estimation de la borne supérieure de l'IC95% du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |\n",
"| geo_insee | Code de la zone géographique concernée (Code INSEE) http://www.insee.fr/fr/methodes/nomenclatures/cog/ |\n",
"| geo_name | Libellé de la zone géographique (ce libellé peut être modifié sans préavis) |\n",
"\n",
"La première ligne du fichier CSV est un commentaire, que nous ignorons en précisant `skiprows=1`.\n",
"\n",
"Nous copions ensuite les données dans un fichier local. Si le fichier local n'existe pas, les données sont téléchargé depuis le site internet. Cela nous permet de garder un jeux de donnée dans le cas où le site serait ammené à ne plus fonctionner. "
"(Exo 1) Nos données utilisent une convention inhabituelle: le numéro de semaine est collé à l'année, donnant l'impression qu'il s'agit de nombre entier. C'est comme ça que Pandas les interprète.\n",
"\n",
"Un deuxième problème est que Pandas ne comprend pas les numéros de semaine. Il faut lui fournir les dates de début et de fin de semaine. Nous utilisons pour cela la bibliothèque isoweek.\n",
"\n",
"Comme la conversion des semaines est devenu assez complexe, nous écrivons une petite fonction Python pour cela. Ensuite, nous l'appliquons à tous les points de nos donnés. Les résultats vont dans une nouvelle colonne 'period'."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def convert_week(year_and_week_int):\n",
" year_and_week_str = str(year_and_week_int)\n",
" year = int(year_and_week_str[:4])\n",
" week = int(year_and_week_str[4:])\n",
" w = isoweek.Week(year, week)\n",
" return pd.Period(w.day(0), 'W')\n",
"\n",
"data['period'] = [convert_week(yw) for yw in data['week']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(Exo 1) Il restent deux petites modifications à faire.\n",
"\n",
"Premièrement, nous définissons les périodes d'observation\n",
"comme nouvel index de notre jeux de données. Ceci en fait\n",
"une suite chronologique, ce qui sera pratique par la suite.\n",
"\n",
"Deuxièmement, nous trions les points par période, dans\n",
"(Exo 1) En partant de cette liste des semaines qui contiennent un 1er septembre, nous obtenons nos intervalles d'environ un an comme les périodes entre deux semaines adjacentes dans cette liste. Nous calculons les sommes des incidences hebdomadaires pour toutes ces périodes.\n",
"\n",
"Nous vérifions également que ces périodes contiennent entre 51 et 52 semaines, pour nous protéger contre des éventuelles erreurs dans notre code."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"year = []\n",
"yearly_incidence = []\n",
"for week1, week2 in zip(first_september_week[:-1],\n",
"Maintenant que nous avons la liste d'incidence par année. Nous pouvons dans un premier temps récupérer l'année avec le plus fort taux d'incidence pour l'exercice 2"