Table de données et format CSV

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.

ExempleTable 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. Donner les attributs de cette table, ainsi que leur type.

DéfinitionLe 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).

On pourra relire cette partie du cours de SNT.

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.

ExempleExemple 1

Voici la table Personnes au format CSV :

1
num,nom,prenom,genre,annee_nais
2
1,Labrosse,Adam,M,2000
3
2,Gemlamorte,Adèle,F,1985
4
3,Auboisdormant,Abel,M,2001
5
4,Etpan,Ahmed,M,1975
6
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 ?

ExempleExemple 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 ce fichier csv portant sur l'espérance de vie des femmes en France :

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

Remarque

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.

Exemple

  • Ouvrir à nouveau le fichier avec un éditeur (Geany par exemple), remplacer les "." utilisés comme séparateur décimal par des virgules (utiliser le menu Rechercher/Remplacer).

  • Ajouter également une donnée dans une nouvelle cellule sur la droite 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?

Complément

Voici le fichier modifié :

89 et 65 (entrés dans la cellule supplémentaire) 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.

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

MéthodeExercice : 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 Geany) et observer comment vos données en colonne sont enregistrées.

  • Recommencer en créant un second fichier ods puis enregistrer le 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.