diff --git a/module3/exo1/analyse-syndrome-grippal.org b/module3/exo1/analyse-syndrome-grippal.org index 1720b70df3a93009c79592b68d1dcf57a53f6341..7e40ee356e9de252f87f52abd6abce2e8010b189 100644 --- a/module3/exo1/analyse-syndrome-grippal.org +++ b/module3/exo1/analyse-syndrome-grippal.org @@ -46,6 +46,10 @@ Les données de l'incidence du syndrome grippal sont disponibles du site Web du #+NAME: data-url http://www.sentiweb.fr/datasets/incidence-PAY-3.csv +Le jeu de données devrait déjà être dans un fichier local : +#+NAME: data-file +data.csv + Voici l'explication des colonnes donnée sur [[https://ns.sentiweb.fr/incidence/csv-schema-v1.json][le site d'origine:]] | Nom de colonne | Libellé de colonne | @@ -64,13 +68,22 @@ Voici l'explication des colonnes donnée sur [[https://ns.sentiweb.fr/incidence/ L'indication d'une semaine calendaire en format [[https://en.wikipedia.org/wiki/ISO_8601][ISO-8601]] est populaire en Europe, mais peu utilisée aux Etats-Unis. Ceci explique peut-être que peu de logiciels savent gérer ce format. Le langage Python le fait depuis la version 3.6. Nous utilisons donc ce langage pour la préparation de nos données, ce qui a l'avantage de ne nécessiter aucune bibliothèque supplémentaire. (Note: nous expliquerons dans le module 4 pourquoi il est avantageux pour la réproductibilité de se limiter à un minimum de bibliothèques.) ** Téléchargement -Après avoir téléchargé les données, nous commençons par l'extraction des données qui nous intéressent. D'abord nous découpons le contenu du fichier en lignes, dont nous jetons la première qui ne contient qu'un commentaire. Les autres lignes sont découpées en colonnes. +Si le fichier de données local existe, on en extrait les données, sinon, on le créé à partir des données téléchargées depuis l'URL. +Après avoir récupéré les données, nous commençons par l'extraction des données qui nous intéressent. D'abord nous découpons le contenu du fichier en lignes, dont nous jetons la première qui ne contient qu'un commentaire. Les autres lignes sont découpées en colonnes. -#+BEGIN_SRC python :results silent :var data_url=data-url +#+BEGIN_SRC python :results silent :var data_url=data-url data_file=data-file +import os from urllib.request import urlopen -data = urlopen(data_url).read() -lines = data.decode('latin-1').strip().split('\n') +data_file = data_file.strip() # We strip because emacs insert a '\n' in data-file +if (os.path.isfile(data_file)) : + data = open(data_file, 'r').read() +else : + data = urlopen(data_url).read().decode('latin-1') + backup_data = open(data_file, 'w') + backup_data.write(str(data)) + backup_data.close() +lines = data.strip().split('\n') data_lines = lines[1:] table = [line.split(',') for line in data_lines] #+END_SRC