informatique (tronc commun des prépas scientifiques) · Chapitre 4 · Exercice de TD
Lire un fichier à colonnes variables
Modules, fichiers et données · niveau 3 (difficile)
Énoncé
Un fichier stations.csv contient sur chaque ligne station;t1;t2;...;tk où le nombre de mesures de température varie selon les lignes. Écrire un lecteur qui renvoie pour chaque station son nombre de mesures, sa moyenne et son maximum. Tracer les résultats sous forme de diagramme en barres.
Corrigé
import matplotlib.pyplot as plt
def rapport_stations(nom_fichier: str) -> dict:
rapport = {}
with open(nom_fichier, "r") as f:
for ligne in f:
ligne = ligne.strip()
if ligne == "":
continue
champs = ligne.split(";")
nom = champs[0]
# Conversion des éléments restants de la ligne
mesures = [float(val) for val in champs[1:]]
rapport[nom] = (len(mesures), sum(mesures) / len(mesures), max(mesures))
return rapport
# Tracé graphique
rapport = rapport_stations("stations.csv")
stations = list(rapport)
moyennes = [rapport[st][1] for st in stations]
plt.bar(stations, moyennes)
plt.ylabel("Température moyenne (°C)")
plt.title("Relevé moyen par station")
plt.show()Exercices semblables
- La variance en un seul passage corrigé
- Construire l'histogramme soi-même corrigé
- Moyennes par catégorie corrigé
- La méthode de Monte-Carlo corrigé
- Auto-contrôle d'une chaîne de traitement corrigé