Data Wrangling

Chargement efficace de données textuelles dans Pandas

Spread the love

Pandas est une puissante bibliothèque Python pour la manipulation et l’analyse de données, et le chargement de données à partir de fichiers texte est une tâche fondamentale. Cet article explore des méthodes efficaces pour importer des données de différents formats de texte dans des DataFrames Pandas.

Table des matières

1. Charger des fichiers CSV et délimités avec read_csv()

La fonction read_csv() est le moteur pour importer des fichiers de valeurs séparées par des virgules (CSV). Sa polyvalence s’étend aux autres fichiers délimités en spécifiant le délimiteur à l’aide du paramètre sep ou delimiter. Explorons ses capacités :


import pandas as pd

# Charger un fichier CSV
df_csv = pd.read_csv("data.csv")
print(df_csv.head()) #Utilisation de head() pour afficher uniquement les premières lignes pour une meilleure lisibilité

# Charger un fichier séparé par tabulation
df_tsv = pd.read_csv("data.tsv", sep="t")
print(df_tsv.head())

# Charger un fichier avec un pipe comme délimiteur
df_pipe = pd.read_csv("data.txt", delimiter="|")
print(df_pipe.head())

Au-delà du chargement de base, read_csv() offre des paramètres puissants pour un contrôle précis :

  • sep ou delimiter : Spécifie le délimiteur (la valeur par défaut est ‘,’).
  • header : Numéro(s) de ligne pour les noms de colonne (la valeur par défaut est 0, utiliser None pour aucun en-tête).
  • names : Liste des noms de colonne s’il n’y a pas de ligne d’en-tête.
  • index_col : Colonne à utiliser comme index du DataFrame.
  • usecols : Sélectionner des colonnes spécifiques pour améliorer les performances.
  • nrows : Lire uniquement les n premières lignes pour prévisualiser les fichiers volumineux.
  • skiprows : Ignorer les lignes spécifiées au début.
  • encoding : Spécifier l’encodage du fichier (par exemple, ‘utf-8’, ‘latin-1’).
  • dtype: Spécifier les types de données pour les colonnes
  • comment: Caractère pour indiquer les lignes de commentaire

2. Traiter les fichiers à largeur fixe avec read_fwf()

La méthode read_fwf() (lire les fichiers formatés à largeur fixe) est essentielle pour les fichiers où les colonnes sont définies par leur largeur fixe, et non par des délimiteurs. Ceci est courant dans les systèmes hérités.


import pandas as pd

# Définir les largeurs des colonnes
colspecs = [(0, 10), (10, 20), (20, 30)]  # Les colonnes ont une largeur de 10, 10 et 10 caractères

# Charger le fichier à largeur fixe
df_fwf = pd.read_fwf("data_fwf.txt", colspecs=colspecs, header=None)
df_fwf.columns = ['Column1', 'Column2', 'Column3']

print(df_fwf.head())

Les paramètres clés pour read_fwf() incluent :

  • colspecs : Liste de tuples définissant les positions de début et de fin des colonnes.
  • widths : Alternative à colspecs, fournissant une liste des largeurs des colonnes.
  • header : Numéro de ligne pour l’en-tête (identique à read_csv()).
  • names : Fournit les noms des colonnes (identique à read_csv()).

3. Utiliser read_table() pour les fichiers séparés par tabulation et autres fichiers délimités

read_table() est largement équivalent à read_csv(), par défaut avec un délimiteur de tabulation (t). Il est idéal pour les fichiers séparés par tabulation (TSV), mais peut gérer d’autres délimiteurs en spécifiant le paramètre sep. Il partage tous les paramètres de read_csv(), offrant une flexibilité similaire.


import pandas as pd

# Charger un fichier séparé par tabulation
df_table = pd.read_table("data.tsv")
print(df_table.head())

# Spécifier un délimiteur différent
df_table_custom = pd.read_table("data.txt", sep="|")
print(df_table_custom.head())

Pandas offre des outils robustes pour importer efficacement des données de divers formats de fichiers texte. Le choix de la méthode correcte dépend de la structure de vos données. N’oubliez pas de résoudre les problèmes d’encodage et de gérer les valeurs manquantes après le chargement.

Laisser un commentaire

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