Importer des données d'un fichier CSV
Qu'est-ce qu'un fichier CSV ?
La plupart des logiciels de traitement de données (ex. tableur, Regressi, Latis, ...) offre la possibilité d'importer ou d'exporter des données dans un fichier texte au format CSV (Comma Separated Values) avec l'extension .csv
ou .txt
.
Le format CSV est un standard d'échange de données entre logiciels.
Note
L'édition d'un fichier texte (.txt
ou .csv
) se fait avec un éditeur de texte comme le logiciel Notepad++.
Pour illustrer la structure d'un fichier CSV, considérons les mesures de la caractéristique d'une résistance du tableau suivant.
Mesure |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
---|---|---|---|---|---|---|---|---|---|---|
I (mA) |
0 |
51 |
101 |
151 |
203 |
252 |
303 |
356 |
406 |
456 |
U (V) |
0 |
1,11 |
2,22 |
3,28 |
4,42 |
5,5 |
6,68 |
7,73 |
8,92 |
9,91 |
L'édition des données de ce tableau dans un fichier texte nommé data.txt
donne le contenu ci-dessous.
I,U
0,0
51,1.11
101,2.22
151,3.28
203,4.42
252,5.50
303,6.68
356,7.73
406,8.92
456,9.91
Les données sont toujours rangées en colonne.
La première ligne renseigne sur les noms des variables.
Les colonnes sont séparées par une virgule.
Le séparateur décimal est un point (comme en Python).
Des variantes du format CSV admettent d'autres symboles pour le séparateur de colonnes et le séparateur décimal.
Type |
Séparateur de colonnes |
Séparateur décimal |
---|---|---|
CSV (original) |
|
|
CSV (européen) |
|
|
Avertissement
Sachant que le langage Python impose le point comme séparateur décimal, le format CSV européen peut poser de problèmes de compatibilité.
Exportation en CSV de quelques logiciels
Regressi
Le logiciel Regressi propose une exportation des données en .txt
ou .csv
avec les règles suivantes :
Format |
Séparateur de colonnes |
Séparateur décimal |
---|---|---|
Regressi (TXT) |
|
|
Regressi (CSV) |
|
|
I U
mA V
0 0
51 1.11
101 2.22
151 3.28
203 4.42
252 5.50
303 6.68
356 7.73
406 8.92
456 9.91
Le séparateur de colonnes est la tabulation
\t
.Le séparateur décimal est le point
.
.Les deux premières lignes ne sont pas à prendre en compte (informations sur les données).
Latis Pro
Le logiciel Latis Pro supporte lui aussi les deux extensions .txt
ou .csv
pour l'exportation des données au format CSV.
Format |
Séparateur de colonnes |
Séparateur décimal |
---|---|---|
Latis Pro (TXT) |
|
|
Latis Pro (CSV) |
|
|
I;U
0;0
51;1.11
101;2.22
151;3.28
203;4.42
252;5.50
303;6.68
356;7.73
406;8.92
456;9.91
Le séparateur de colonnes est le point virgule
;
.Le séparateur décimal est le point
.
.La première ligne n'est pas à prendre en compte (informations sur les données).
AviMéca 3
Quant au logiciel AviMéca 3, seule l'extension .txt
est disponible avec plusieurs séparateurs de colonnes et uniquement la virgule comme séparateur décimal.
Format |
Séparateur de colonnes |
Séparateur décimal |
---|---|---|
AviMéca (TXT) |
|
|
Pointages AviMéca
t x y
(s) (m) (m)
0,000 4,18E-1 7,54E-1
0,033 4,85E-1 8,88E-1
0,067 5,52E-1 9,85E-1
0,100 6,12E-1 1,09E+0
0,133 6,79E-1 1,19E+0
0,167 7,54E-1 1,27E+0
0,200 8,21E-1 1,35E+0
Le séparateur de colonnes est une tabulation
\t
.Le séparateur décimal est la virgule
,
.Les trois premières lignes ne sont pas à prendre en compte (informations sur les données).
Importation d'un fichier CSV avec le module csv
Le module csv
est fourni par la librairie standard de Python.
Importation d'un fichier CSV avec le module numpy
Prenons l'exemple d'un fichier de données nommé data.txt
dont le contenu est donné ci-dessous. Ce fichier texte est téléchargeable ici
.
I;U
0;0
51;1.11
101;2.22
151;3.28
203;4.42
252;5.50
303;6.68
356;7.73
406;8.92
456;9.91
L'importation des données du fichier data.txt
se fait assez simplement avec la fonction loadtxt()
du paquet Numpy.
Avertissement
Le fichier data.txt
doit-être placé dans le même répertoire que le programme Python.
import numpy as np
x, y = np.loadtxt('data.txt', delimiter=';', skiprows=1, unpack=True)
>>> %Run
>>> x
array([ 0., 51., 101., 151., 203., 252., 303., 356., 406., 456.])
>>> y
array([0. , 1.11, 2.22, 3.28, 4.42, 5.5 , 6.68, 7.73, 8.92, 9.91])
loadtxt()
renvoie un tableau de tableaux (colonnes) Numpy.delimiter=';'
signifie que le séparateur de colonnes est un point virgule.skiprows=1
précise qu'il faut sauter la première ligne (pas de données).unpack=True
transpose le tableau pour des données en colonne (en ligne par défaut).