Introduction à la lecture de fichiers CSV en Python

Les fichiers CSV (Comma-Separated Values) sont largement utilisés pour stocker des données tabulaires. En Python, plusieurs bibliothèques permettent de lire ces fichiers, dont la plus populaire est pandas.

La bibliothèque pandas offre une fonction read_csv qui peut lire les fichiers CSV à partir d’un chemin de fichier, d’une URL ou même d’une chaîne. Cette fonction est très flexible et peut gérer de nombreux cas d’utilisation.

Dans cet article, nous allons nous concentrer sur la lecture d’un fichier CSV à partir d’une chaîne en Python. Cela peut être utile dans de nombreux scénarios, par exemple lorsque vous recevez des données CSV dans une réponse HTTP ou si vous manipulez des données générées dynamiquement.

Dans les sections suivantes, nous allons explorer comment utiliser la bibliothèque pandas pour lire un CSV à partir d’une chaîne, et nous allons fournir plusieurs exemples pour illustrer différents cas d’utilisation. Restez à l’écoute !

Utilisation de la bibliothèque pandas pour lire un CSV à partir d’une chaîne

La bibliothèque pandas en Python offre une fonction très pratique, read_csv, pour lire les fichiers CSV. Cette fonction est généralement utilisée pour lire un fichier CSV à partir d’un chemin de fichier ou d’une URL, mais elle peut aussi lire un CSV à partir d’une chaîne.

Voici comment vous pouvez utiliser read_csv pour lire un CSV à partir d’une chaîne :

import pandas as pd
from io import StringIO

data = """col1,col2,col3
1,2,3
4,5,6
7,8,9"""

# Utilisez StringIO pour convertir la chaîne en un objet de type fichier
data = StringIO(data)

# Utilisez pandas pour lire le CSV à partir de l'objet de type fichier
df = pd.read_csv(data)

print(df)

Dans cet exemple, nous avons d’abord importé les bibliothèques nécessaires, pandas et StringIO de io. Ensuite, nous avons défini une chaîne data qui contient des données CSV. Nous avons utilisé StringIO pour convertir cette chaîne en un objet de type fichier, que nous avons ensuite passé à pd.read_csv pour lire les données CSV.

Le résultat est un DataFrame pandas qui contient les données CSV. Vous pouvez maintenant utiliser toutes les fonctionnalités de pandas pour manipuler et analyser ces données.

Dans les sections suivantes, nous allons explorer quelques exemples plus complexes de lecture de CSV à partir d’une chaîne.

Exemple 1 : Lecture d’un CSV avec des virgules comme séparateurs

Dans cet exemple, nous allons lire un CSV où les colonnes sont séparées par des virgules, ce qui est le format le plus courant pour les fichiers CSV.

import pandas as pd
from io import StringIO

data = """nom,age,ville
Alice,20,Paris
Bob,25,Lyon
Charlie,30,Marseille"""

data = StringIO(data)

df = pd.read_csv(data)

print(df)

Dans cet exemple, nous avons une chaîne data qui contient des données CSV avec des virgules comme séparateurs. Nous utilisons StringIO pour convertir cette chaîne en un objet de type fichier, puis nous utilisons pd.read_csv pour lire les données CSV.

Le résultat est un DataFrame pandas qui contient les données CSV :

       nom  age       ville
0    Alice   20       Paris
1      Bob   25        Lyon
2  Charlie   30  Marseille

Comme vous pouvez le voir, pandas a correctement interprété les virgules comme des séparateurs de colonnes et a lu les données en conséquence. Dans le DataFrame résultant, chaque colonne correspond à une colonne du CSV, et chaque ligne correspond à une ligne du CSV.

Exemple 2 : Lecture d’un CSV avec des points-virgules comme séparateurs

Dans certains cas, les fichiers CSV peuvent utiliser des points-virgules (;) comme séparateurs de colonnes. Heureusement, la fonction read_csv de pandas peut gérer cela sans problème. Il suffit de spécifier le paramètre sep ou delimiter lors de l’appel à read_csv.

Voici un exemple de lecture d’un CSV avec des points-virgules comme séparateurs :

import pandas as pd
from io import StringIO

data = """nom;age;ville
Alice;20;Paris
Bob;25;Lyon
Charlie;30;Marseille"""

data = StringIO(data)

df = pd.read_csv(data, sep=';')

print(df)

Dans cet exemple, nous avons une chaîne data qui contient des données CSV avec des points-virgules comme séparateurs. Nous utilisons StringIO pour convertir cette chaîne en un objet de type fichier, puis nous utilisons pd.read_csv avec le paramètre sep=';' pour lire les données CSV.

Le résultat est un DataFrame pandas qui contient les données CSV :

       nom  age       ville
0    Alice   20       Paris
1      Bob   25        Lyon
2  Charlie   30  Marseille

Comme vous pouvez le voir, pandas a correctement interprété les points-virgules comme des séparateurs de colonnes et a lu les données en conséquence. Dans le DataFrame résultant, chaque colonne correspond à une colonne du CSV, et chaque ligne correspond à une ligne du CSV.

Exemple 3 : Lecture d’un CSV sans en-tête

Parfois, vous pouvez rencontrer des fichiers CSV qui n’ont pas d’en-tête. Dans ce cas, vous pouvez toujours utiliser pandas pour lire le fichier, mais vous devrez spécifier quelques paramètres supplémentaires.

Voici un exemple de lecture d’un CSV sans en-tête :

import pandas as pd
from io import StringIO

data = """Alice;20;Paris
Bob;25;Lyon
Charlie;30;Marseille"""

data = StringIO(data)

df = pd.read_csv(data, sep=';', header=None)

print(df)

Dans cet exemple, nous avons une chaîne data qui contient des données CSV sans en-tête. Nous utilisons StringIO pour convertir cette chaîne en un objet de type fichier, puis nous utilisons pd.read_csv avec les paramètres sep=';' et header=None pour lire les données CSV.

Le résultat est un DataFrame pandas qui contient les données CSV :

        0   1          2
0   Alice  20      Paris
1     Bob  25       Lyon
2  Charlie  30  Marseille

Comme vous pouvez le voir, pandas a correctement interprété les points-virgules comme des séparateurs de colonnes et a lu les données en conséquence. Dans le DataFrame résultant, chaque colonne est simplement numérotée (0, 1, 2) car il n’y avait pas d’en-tête dans les données CSV. Chaque ligne correspond à une ligne du CSV. Vous pouvez maintenant ajouter des en-têtes à ce DataFrame si nécessaire.

Ressources supplémentaires et tutoriels connexes

Si vous souhaitez approfondir vos connaissances sur la lecture de fichiers CSV en Python, voici quelques ressources supplémentaires et tutoriels connexes qui pourraient vous être utiles :

  • Documentation officielle de pandas : La documentation de pandas est une excellente ressource pour comprendre les différentes fonctionnalités de la bibliothèque. Vous pouvez trouver la documentation de la fonction read_csv ici.

  • Tutoriels sur la lecture de fichiers CSV avec pandas : Il existe de nombreux tutoriels en ligne qui expliquent comment lire des fichiers CSV avec pandas. Par exemple, le site web Real Python propose un excellent tutoriel sur le sujet.

  • Cours en ligne sur Python et pandas : Si vous préférez un apprentissage plus structuré, il existe de nombreux cours en ligne qui couvrent Python et pandas en détail. Des plateformes comme Coursera, Udemy et edX proposent des cours de qualité sur ces sujets.

  • Livres sur Python et pandas : Si vous préférez l’apprentissage par les livres, il existe de nombreux livres qui couvrent Python et pandas en détail. Par exemple, « Python for Data Analysis » de Wes McKinney est un excellent livre qui couvre pandas en détail.

N’oubliez pas que la meilleure façon d’apprendre est de pratiquer. N’hésitez donc pas à essayer de lire différents types de fichiers CSV et à expérimenter avec les différentes options de la fonction read_csv. Bonne chance dans votre apprentissage de Python et pandas !

By laurent

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *