go-back Retour

Traitement de données en tables

📝 Mini-cours GRATUIT

Les données structurées au format csv

Le format CSV

Définition et caractéristiques

Un fichier CSV est un fichier texte, par opposition aux formats dits « binaires ». Ce format informatique ouvert permet de représenter des données tabulaires sous forme de valeurs séparées par des virgules.

Chaque ligne du texte correspond à une ligne du tableau et les virgules correspondent aux séparations entre les colonnes. Le sigle CSV signifie Comma-Separated Values.

Exemple de fichier CSV

Voici un exemple de fichier CSV :

$$\text{Titre,Réalisateur,Année de sortie}\\ \text{Forest Gump,Robert Zemeckis,1994}\\ \text{Bohemian Rhapsody,Bryan Singer,2018}\\ \text{Le Dictateur,Charles Chaplin,1945}$$

La première ligne est un entête qui donne les noms des colonnes du fichier. Dans cet exemple, le fichier CSV contient une liste de films avec comme informations : le titre, le réalisateur et l'année de sortie du film.

Variantes de séparateurs

Il est possible d'utiliser un autre caractère de séparateur que la virgule. Par exemple, en français, la virgule étant le séparateur des chiffres décimaux, on préfère utiliser comme séparateur le point-virgule ( ;).

Compatibilité et utilisation

Les tableurs, tels que "Calc" (Libre Office) ou Microsoft Excel sont capables de lire les fichiers au format CSV.

Avantages et limites

Le format CSV permet de stocker des données en un minimum d'espace mémoire, de manière simple et facile à lire pour un programme informatique. En revanche, il ne permet pas de produire des structures de données très élaborées, comme d'autres formats (JSON ou XML par exemple).

EN RÉSUMÉ

Le traitement des données structurées : lecture des données dans un fichier csv

Lecture de données dans un fichier CSV avec Python

Il existe plusieurs manières de lire des données contenues dans un fichier CSV à partir du langage Python.

Méthodes de lecture disponibles

On peut le faire de trois façons différentes selon les besoins et les outils disponibles.

  • En considérant le fichier CSV comme un fichier texte 
  • À partir de la bibliothèque Python nommée "csv" 
  • À partir d'une autre bibliothèque Python nommée "pandas".

EN RÉSUMÉ

Le traitement des données structurées : exemple 1

Lecture d'un fichier CSV avec pandas

Voici un exemple de lecture d'un fichier csv à partir de la bibliothèque Python nommée pandas 

$$\color{blue}{\textit{import pandas}\\ \textit{films = pandas.read_csv("films.csv")}\\ \textit{print(films)}}$$

Le fichier films.csv contient la liste des 3 films présentés précédemment.

Affichage du contenu

L'exécution de ce programme produit l'affichage suivant 

$$\scriptstyle\begin{array}{lll} & \rm Titre & \rm Réalisateur & \text{Année de sortie}\\ & & & \\ 0 & \text{Forrest Gump} & \text{Robert Zemeckis} & 1994\\ 1 & \text{Bohemian Rhapsody} & \text{Bryan Singer} & 2018\\ 2 & \text{Le Dictateur} & \text{Charles Chaplin} & 1945\\ \end{array}$$

On peut remarquer que l'affichage est effectué par ligne avec une numérotation.

Récupération d'une donnée particulière

A l'aide de la méthode loc il est possible de récupérer une donnée particulière du fichier.

Exemple

$$\color{blue}{\textit{import pandas}\\ \textit{films = pandas.read_csv("films.csv")}\\ \textit{print(films.loc[1,"Titre"])}}$$

L'exécution de ce programme produit l'affichage suivant 
Bohemian Rhapsody
On a récupéré le titre du film de la ligne en position 1 du fichier csv.

EN RÉSUMÉ

Le traitement des données structurées : exemple 2

Analyse du Box Office français 2018 avec Pandas

On va traiter un autre fichier csv qui contient le Box Office des films en France en 2018 qui ont fait plus de 1 million d'entrées.

Structure du fichier CSV

L'entête de ce fichier est le suivant :

$\rm Classement;Titre;Pays;Réalisateur;entrées$

À l'aide de la bibliothèque Pandas on peut répondre aux questions suivantes :

1. Lister les films français avec plus de 1 million d'entrées

Lister la liste des films français qui ont fait plus de 1 million d'entrées en 2018.

Voici le code Python correspondant :

$\scriptstyle\color{blue}{import~pandas\\
films = pandas.read\_csv("Box\_Office\_2018.csv",encoding="ISO-8859-1",delimiter=";")\\
print(films.loc[films["Pays"]=="France",["Titre","Entrées"]])}$

Ce type de demande correspond à un filtre appliquée à la colonne "Pays".

2. Calculer la moyenne des entrées

Calculer la moyenne des entrées des films sorties en France en 2018 qui ont fait plus de 1 millions d'entrées :

Voici le code Python correspondant :

$\scriptstyle\color{blue}{import~pandas\\
films = pandas.read\_csv("Box\_Office\_2018.csv",encoding="ISO-8859-1",delimiter=";")\\
print(\textit{"Moyenne des entrées en France en 2018 } :"films.loc[:,"Entrées"].mean())}$

La méthode mean() permet de calculer la moyenne, elle est appliquée à la colonne "Entrées" et à toutes les lignes du fichier csv (d'où le caractère ":" en premier paramètre de la variable loc[:,"Entrées"].

3. Trier les films américains par ordre croissant

Lister la liste des films américains qui ont fait plus de 1 million d'entrées en 2018 en France triés par ordre croissant.

Voici le code Python correspondant :

$\scriptstyle\color{blue}{import~pandas\\
films = pandas.read\_csv("Box\_Office\_2018.csv",encoding="ISO-8859-1",delimiter=";")\\
print(films.loc[films["Pays"]=="USA",["Titre","Entrées"]].sort\_values(by=["Entrées"]))}$

On utilise ici la méthode sort_values() avec la clé de tri. (by=["Entrées"]).

Autres possibilités

Il existe de nombreuses autres possibilités de traiter des données à l'aide de la bibliothèque Python pandas ou avec d'autres bibliothèques qui traitent des fichiers textes.

EN RÉSUMÉ

📄 Exos type bac PREMIUM

PREMIUM

Exercice 1

PREMIUM

Exercice 2

PREMIUM

Exercice 3

📄 Annale PREMIUM

PREMIUM

Sujet zéro — Numérique et sciences informatiques

🍀 Fiches de révision PREMIUM

PREMIUM

Systèmes d'exploitation

PREMIUM

Python / Variables

PREMIUM

Architectures matérielles

PREMIUM

Python : Fonctions – Librairies – Opérateurs booléens

PREMIUM

Algorithmes de référence

PREMIUM

Python : Structure de contrôle

PREMIUM

Représentations des données : types construits

PREMIUM

Représentation des données en Python

PREMIUM

Spé NSI

📄 Annale PREMIUM

PREMIUM

Sujet zéro — Numérique et sciences informatiques

NOMAD EDUCATION

L’app unique pour réussir !