Commit bcc30afb authored by x0s's avatar x0s

module 3 exo 1 done

parent ecf1bfeb
...@@ -44,7 +44,8 @@ Nous n'utilisons que des fonctionnalités de base du langage R, une version ant ...@@ -44,7 +44,8 @@ Nous n'utilisons que des fonctionnalités de base du langage R, une version ant
Les données de l'incidence du syndrome grippal sont disponibles du site Web du [[http://www.sentiweb.fr/][Réseau Sentinelles]]. Nous les récupérons sous forme d'un fichier en format CSV dont chaque ligne correspond à une semaine de la période d'observation. Nous téléchargeons toujours le jeu de données complet (rien d'autre n'est proposé), qui commence en 1984 et se termine avec une semaine récente. L'URL est: Les données de l'incidence du syndrome grippal sont disponibles du site Web du [[http://www.sentiweb.fr/][Réseau Sentinelles]]. Nous les récupérons sous forme d'un fichier en format CSV dont chaque ligne correspond à une semaine de la période d'observation. Nous téléchargeons toujours le jeu de données complet (rien d'autre n'est proposé), qui commence en 1984 et se termine avec une semaine récente. L'URL est:
#+NAME: data-url #+NAME: data-url
http://www.sentiweb.fr/datasets/incidence-PAY-3.csv https://www.sentiweb.fr/datasets/incidence-PAY-3.csv
Voici l'explication des colonnes donnée sur [[https://ns.sentiweb.fr/incidence/csv-schema-v1.json][le site d'origine:]] Voici l'explication des colonnes donnée sur [[https://ns.sentiweb.fr/incidence/csv-schema-v1.json][le site d'origine:]]
...@@ -67,19 +68,37 @@ L'indication d'une semaine calendaire en format [[https://en.wikipedia.org/wiki/ ...@@ -67,19 +68,37 @@ L'indication d'une semaine calendaire en format [[https://en.wikipedia.org/wiki/
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. 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.
#+BEGIN_SRC python :results silent :var data_url=data-url #+BEGIN_SRC python :results silent :var data_url=data-url
from urllib.request import urlopen from pathlib import Path
import pandas as pd
data_file = Path("syndrome-grippal.csv")
data = urlopen(data_url).read() if not data_file.exists():
lines = data.decode('latin-1').strip().split('\n') (pd.read_csv(data_url, encoding='latin', header=1, index_col=0)
data_lines = lines[1:] .to_csv(data_file, index=False))
table = [line.split(',') for line in data_lines]
#+END_SRC #+END_SRC
Chargeons notre fichier de données local dans un dataframe
#+begin_src python :results output :exports both
df = pd.read_csv(data_file)
table = df.values
#+end_src
#+RESULTS:
Regardons ce que nous avons obtenu: Regardons ce que nous avons obtenu:
#+BEGIN_SRC python :results value #+BEGIN_SRC python :results value
table[:5] table[:5]
#+END_SRC #+END_SRC
#+RESULTS:
| 202015 | 3 | 0 | 0.0 | 0.0 | 0 | 0.0 | 0.0 | FR | France |
| 202014 | 3 | 0 | 0.0 | 0.0 | 0 | 0.0 | 0.0 | FR | France |
| 202013 | 3 | 0 | 0.0 | 0.0 | 0 | 0.0 | 0.0 | FR | France |
| 202012 | 3 | 8321 | 5873.0 | 10769.0 | 13 | 9.0 | 17.0 | FR | France |
| 202011 | 3 | 101704 | 93652.0 | 109756.0 | 154 | 142.0 | 166.0 | FR | France |
** Recherche de données manquantes ** Recherche de données manquantes
Il y a malheureusement beaucoup de façon d'indiquer l'absence d'un point de données. Nous testons ici seulement pour la présence de champs vides. Il faudrait aussi rechercher des valeurs non-numériques dans les colonnes à priori numériques. Nous ne le faisons pas ici, mais une vérification ultérieure capterait des telles anomalies. Il y a malheureusement beaucoup de façon d'indiquer l'absence d'un point de données. Nous testons ici seulement pour la présence de champs vides. Il faudrait aussi rechercher des valeurs non-numériques dans les colonnes à priori numériques. Nous ne le faisons pas ici, mais une vérification ultérieure capterait des telles anomalies.
...@@ -94,6 +113,8 @@ for row in table: ...@@ -94,6 +113,8 @@ for row in table:
valid_table.append(row) valid_table.append(row)
#+END_SRC #+END_SRC
#+RESULTS:
** Extraction des colonnes utilisées ** Extraction des colonnes utilisées
Il y a deux colonnes qui nous intéressent: la première (~"week"~) et la troisième (~"inc"~). Nous vérifions leurs noms dans l'en-tête, que nous effaçons par la suite. Enfin, nous créons un tableau avec les deux colonnes pour le traitement suivant. Il y a deux colonnes qui nous intéressent: la première (~"week"~) et la troisième (~"inc"~). Nous vérifions leurs noms dans l'en-tête, que nous effaçons par la suite. Enfin, nous créons un tableau avec les deux colonnes pour le traitement suivant.
#+BEGIN_SRC python :results silent #+BEGIN_SRC python :results silent
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment