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
- Charger des fichiers CSV et délimités avec
read_csv()
- Traiter les fichiers à largeur fixe avec
read_fwf()
- Utiliser
read_table()
pour les fichiers séparés par tabulation et autres fichiers délimités
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
oudelimiter
: 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, utiliserNone
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 lesn
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 colonnescomment
: 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.