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.
Exemple : 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 |
Donner un élément de cette table...
Combien d’éléments sont contenus dans cette table ?
Donner les attributs de cette table, ainsi que leur type.
Définition : 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).
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.
Exemple : 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
Quel est le séparateur de données dans ce fichier ?
Combien chaque ligne contient-elle de champs ?
Exemple : 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 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.
Fondamental : 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).
Méthode : 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
etn^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 formatcsv
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.