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.

Fichier data.txt
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)

; ou \t (tabulation)

,

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

alternate text


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)

\t

.

Regressi (CSV)

;

,

Exemple de data.txt avec de Regressi.
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

alternate text


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)

; ou \t

, ou .

Latis Pro (CSV)

;

,

Exemple de data.txt avec Latis Pro
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

alternate text


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)

\t ou , ou ;

,

Exemple de data.txt avec AviMéca
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.

Fichier data.txt
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).