Aller au contenu

Table de données et format CSV

Cours

Définition

Une table de données est un ensemble de lignes qui constituent une collection d'éléments :

  • Chaque ligne (hormis la première) est un élément de la collection, on parle aussi d'enregistrement.
  • Chaque colonne représente les attributs d'un élément.
  • Chaque attribut a un type (titre de la colonne) et les valeurs d'un attribut doivent être de même type.

Table Personnes

num nom prenom genre annee_nais
1 Labrosse Adam M 2000
2 Gemlamorte Adèle F 1985
3 Auboisdormant Abel M 2001
4 Etpan Ahmed M 1975
5 Térieur Alain M 1999
  1. Donner un élément de cette table.
  2. Combien d’éléments sont contenus dans cette table ?
  3. Combien d’éléments sont contenus dans cette table ?

Le format CSV

Le format CSV (Comma Separated Values, données avec des séparateurs) est un format de fichier universel et le plus simple à manipuler, notamment en Python. C'est aussi un format très flexible : on peut troquer la virgule contre un point virgule ou une tabulation comme séparateur de données, si celles-ci contiennent elles-mêmes des virgules (par exemple en français où la virgule peut être utilisée pour écrire des nombres décimaux).

Il faut imaginer le contenu de ce fichier comme un tableau, dont les lignes sont les lignes du fichier, et les séparations entre les colonnes sont indiquées par les caractères ,.

La première ligne contient les attributs, qui indiquent quelle donnée contient la colonne correspondante. Ici, il s'agit de num, nom, prenom, genre et annee_nais.

Chacune des lignes suivantes contient un élément (enregistrement), qui associe une valeur à chaque attribut. Les valeurs sont données dans le même ordre que le sont les attributs dans la première ligne.

Exemple 1

Voici la table Personnes au format CSV :

num,nom,prenom,genre,annee_nais
1,Labrosse,Adam,M,2000
2,Gemlamorte,Adèle,F,1985
3,Auboisdormant,Abel,M,2001
4,Etpan,Ahmed,M,1975
5,Térieur,Alain,M,1999
  1. Quel est le séparateur de données dans ce fichier ?
  2. Combien chaque ligne contient-elle de champs ?

Exemple 2

On peut télécharger des données au format csv par exemple sur le site de l'INSEE.

Par exemple, à cette adresse, vous pouvez télécharger le fichier csv portant sur l'espérance de vie des femmes en France.

Espérance de vie des femmes (csv)

  • Ouvrir ce fichier avec un simple éditeur de texte. Quel est le séparateur de données utilisé ?
  • Puis ouvrir le même fichier avec un tableur (LibreOffice Calc).

On constate que le séparateur de données utilisé n'est pas la virgule mais le point virgule. Dans un fichier csv français c'est souvent le cas puisqu'on réserve traditionnellement la virgule à un rôle de séparateur décimal.

Le séparateur étant le point-virgule, on fera attention à bien sélectionner le point-virgule comme séparateur à l'ouverture avec LibreOffice.

  • Ouvrir à nouveau le fichier avec un éditeur (Notepad++ par exemple), remplacer les . utilisés comme séparateur décimal par des virgules (utiliser le menu Rechercher/Remplacer).
  • Ajouter également une donnée en fin d'une ligne au choix, où vous entrerez simplement un nombre tel que 89,65.
  • Puis ouvrir ce fichier modifié en choisissant virgule et point-virgule comme séparateur de données.
  • Que constate-t-on ? À votre avis, pourquoi?

89 et 65 sont normalement bien séparés comme s'il s'agissait de deux données distinctes. Les autres données ne le sont pas car elles sont encapsulées dans des " " qui en font une unité et permettent d'annuler le rôle de séparateur de la virgule.

Lorsqu'on ouvre un fichier csv avec un tableur, en sélectionnant la virgule comme séparateur de données, on constate que les données qui sont les unes en-dessous des autres dans le fichier texte initial constituent les données d'une même colonne dans le tableur.

De même les données qui sont sur une même ligne du fichier texte, séparées par une virgule, sont sur une même ligne du fichier tableur.

Séparateurs

Par défaut, la virgule est le séparateur de données. Mais il est également possible de choisir la tabulation (par exemple) comme séparateur de données. Ou encore le point-virgule (notamment pour des données statistiques écrites avec la virgule comme séparateur décimal, comme c'est l'usage en France).

Exercice : Créer des fichiers CSV

Manipulations 1 :

  • Réaliser d'abord les manipulations de l'exemple 2 ci-dessus.

Manipulations 2 :

  • Ouvrir LibreOffice Calc et remplir quelques lignes et colonnes. Par exemple, avec 3 colonnes : n (pour n variant de 0 à 20), n*n et n^3.
  • Enregistrer le au format ods (format ODF qui est le format par défaut de LibreOffice Calc).
  • Puis Menu fichier > Enregistrer sous et enfin choisir texte csv. Choisir la virgule comme séparateur.
  • Ouvrir ensuite le fichier csv ainsi créé avec un simple éditeur de texte (par exemple Notepad++) et observer comment vos données en colonne sont enregistrées.
  • Recommencer en créant un second fichier ods puis l'enregistrer au format csv mais en choisissant le point-virgule comme séparateur. Observer ensuite le contenu du fichier csv en l'ouvrant avec un simple éditeur de texte.
  • Vous pouvez recommencer en choisissant maintenant la tabulation comme séparateur.