Retour

Traitement de données en tables

🎲 Quiz GRATUIT

📝 Mini-cours GRATUIT

Les données structurées au format csv

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.

Voici un exemple de fichier CSV :

$\color{blue}{\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.
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 (;).
Les tableurs, tels que "Calc" (Libre Office) ou Microsoft Excel sont capables de lire les fichiers au format CSV.

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).

Le traitement des données structurées

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

On peut le faire :

  • 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".

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

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.

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.

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.

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

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.

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 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".

  1. 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"].

  1. 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"]).

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.

Nomad+, Le pass illimité vers la réussite 🔥

NOMAD EDUCATION

L’app unique pour réussir !