Lecture et écriture de fichiers#

Il existe de nombreux modules Python qui permettent de lire des fichiers de données; le choix de l’un ou l’autre va dépendre grandement du format de fichiers. En général, vous allez utiliser des fichiers au format csv (pour “Comma Separated Values”) où les données sont stockées sous forme de tableau dont les colonnes sont séparées par des virgules.

Lecture de fichiers#

Pour ce type de fichiers, on peut utiliser le module pandas.

import pandas
# lecture du fichier par pandas
data = pandas.read_csv("../data/simple_meteo.csv") 
print("Noms des colones:") # affichage des noms de chacune des colonnes
for name in data.columns:
    print("  ", name)
print("Données dans le fichier:") # affichage du tableau de données
print(data)
temperature = data["Paris Temperature"].to_list() # extraction des températures 
# et conversion en liste python
print("Nombre de températures:", len(temperature))
print("Deux premières températures:", temperature[0:2])
Noms des colones:
   Timestamp
   Paris Temperature
   Paris Relative Humidity
   Paris Mean Sea Level Pressure
Données dans le fichier:
         Timestamp  Paris Temperature  Paris Relative Humidity  \
0    20200913T0000          17.886375                     66.0   
1    20200913T0100          16.866377                     72.0   
2    20200913T0200          16.226376                     75.0   
3    20200913T0300          15.726377                     77.0   
4    20200913T0400          15.236376                     80.0   
..             ...                ...                      ...   
187  20200920T1900          26.226376                     49.0   
188  20200920T2000          25.566376                     52.0   
189  20200920T2100          25.176376                     53.0   
190  20200920T2200          24.706377                     54.0   
191  20200920T2300          23.316376                     57.0   

     Paris Mean Sea Level Pressure  
0                           1023.8  
1                           1023.8  
2                           1024.4  
3                           1024.4  
4                           1023.8  
..                             ...  
187                         1014.3  
188                         1014.2  
189                         1014.6  
190                         1015.2  
191                         1015.4  

[192 rows x 4 columns]
Nombre de températures: 192
Deux premières températures: [17.886375, 16.866377]

La variable data est un objet DataFrame et contient alors toutes les données extraites du fichier simple_meteo.csv qui se trouve dans le sous-dossier data/appendix 1. Cette variable se comporte presque comme un dictionnaire, mais avec quelques fonctions supplémentaires. On peut récupérer les noms des colonnes grâce à data.columns: cela permet ensuite de récupérer les données plus facilement.

On peut alors utilser plusieurs méthodes:

  • transformer les “colonnes” de données en liste: to_list(),

  • ajouter des nouvelles données avec la méthode append(autre_données, ignore_index=True) (voir ici pour plus de détails.}

Ecriture de fichiers#

Il est possible de sauvegarder des DataFrame dans des fichiers au format csv avec pandas en utilisant la fonction to_csv:

data.to_csv("../data/new_meteo.csv")

Avec cette méthode, la lecture du fichier pourra se faire avec pandas sans problème.


1

Il est important de faire attention à l’endroit d’où on exécute le script Python: en effet, si on change d’endroit, le chemin du fichier donné à la fonction read_csv ne peut ne plus correspondre à un fichier existant. Dans Jupyter Notebook, le chemin à donner est relatif à l’endroit où se trouve le notebook. Pour choisir l’endroit d’où l’on exécute le script python dans Spyder, on utilise la barre de chemin en haut à gauche.