From 09c06baa8f9147f107d4628ce007a7be62a0d43c Mon Sep 17 00:00:00 2001 From: 12a5a79214b1354e349468ed6346f605 <12a5a79214b1354e349468ed6346f605@app-learninglab.inria.fr> Date: Mon, 23 Jun 2025 09:04:29 +0000 Subject: [PATCH] Update Readme.md --- journal/Readme.md | 67 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/journal/Readme.md b/journal/Readme.md index b529ad4..e37b3e9 100644 --- a/journal/Readme.md +++ b/journal/Readme.md @@ -48,16 +48,16 @@ print("Maximum :", np.max(donnees)) import matplotlib.pyplot as plt -# Affichage graphique : Séquence plot + histogramme +% Affichage graphique : Séquence plot + histogramme fig, axs = plt.subplots(2, 1, figsize=(10, 8)) -# Séquence plot +% Séquence plot axs[0].plot(donnees, marker='o', linestyle='-', color='blue') axs[0].set_title("Séquence plot des données") axs[0].set_xlabel("Index") axs[0].set_ylabel("Valeur") -# Histogramme +% Histogramme axs[1].hist(donnees, bins=15, color='skyblue', edgecolor='black') axs[1].set_title("Histogramme des données") axs[1].set_xlabel("Valeur") @@ -74,3 +74,64 @@ plt.show() - Une analyse réplicable est plus facile à modifier pour de nouveaux cas et plus simple à vérifier par d'autres chercheurs. Elle renforce la fiabilité et la reproductibilité des résultats. +### Module3 Exo1 + +#### Modification du code pour utiliser une copie locale des données + +Au lieu de télécharger les données du Réseau Sentinelles à chaque exécution, nous allons : +1. Vérifier si une copie locale existe déjà. +2. Si ce n’est pas le cas, télécharger le fichier CSV et le sauvegarder localement. +3. Charger les données à partir du fichier local. + +python +import pathlib +import requests +import pandas as pd + +#### URL d’origine +data_url = "http://www.sentiweb.fr/datasets/incidence-PAY-3.csv" +local_file = pathlib.Path("data/incidence_grippal.csv") + +#### Créer le dossier 'data' si nécessaire +local_file.parent.mkdir(parents=True, exist_ok=True) + +#### Télécharger si la copie locale n'existe pas encore +if not local_file.exists(): + print("Téléchargement du fichier depuis le Réseau Sentinelles…") + response = requests.get(data_url, timeout=30) + response.raise_for_status() + local_file.write_bytes(response.content) + print(f"✅ Données sauvegardées dans : {local_file}") +else: + print(f"✅ Données locales déjà présentes : {local_file}") + +#### Lecture du fichier CSV local +raw_data = pd.read_csv(local_file, skiprows=1) + + +### Nettoyage et vérification des données avant l’analyse + +Avant de tracer les courbes, il faut : + +- Supprimer les espaces éventuels dans les noms de colonnes. + +- Convertir la colonne 'inc' en données numériques. + +- Vérifier que la colonne 'inc' contient bien des données valides. + + + +#### Étape 1 : Supprimer les espaces autour des noms de colonnes +sorted_data.columns = sorted_data.columns.str.strip() + +#### Étape 2 : Convertir la colonne 'inc' en type numérique +sorted_data['inc'] = pd.to_numeric(sorted_data['inc'], errors='coerce') + +#### Étape 3 : Vérifier les données +print("Valeurs manquantes dans 'inc' :", sorted_data['inc'].isnull().sum()) +print("Valeurs valides dans 'inc' :", sorted_data['inc'].notnull().sum()) + +#### Étape 4 : Tracer la courbe +sorted_data['inc'].plot() + + -- 2.18.1