Comment fusionner efficacement plusieurs fichiers CSV avec Python

La tâche de fusionner plusieurs fichiers CSV en un seul est courante dans l’analyse de données et le traitement statistique. Si cette tâche est effectuée manuellement, elle peut prendre beaucoup de temps et entraîner des erreurs. L’utilisation de la bibliothèque pandas de Python permet de réaliser cette opération de manière efficace et précise. Cet article explique en détail comment fusionner plusieurs fichiers CSV à l’aide de Python.

Sommaire

Bibliothèques nécessaires et méthode d’installation

Pour fusionner plusieurs fichiers CSV avec Python, la bibliothèque pandas est nécessaire. Pandas est un outil puissant qui offre de nombreuses fonctionnalités pour le traitement et l’analyse des données. Cette section décrit comment installer pandas.

Installation de pandas

Pour installer pandas, utilisez la commande suivante. Cela se fait via pip, le gestionnaire de paquets de Python.

pip install pandas

Autres bibliothèques nécessaires

Outre pandas, la bibliothèque numpy est également utile pour le traitement des fichiers CSV. Numpy est une bibliothèque dédiée aux calculs numériques et est souvent utilisée en combinaison avec pandas. Vous pouvez l’installer via pip avec la commande suivante.

pip install numpy

Vous êtes maintenant prêt à fusionner efficacement des fichiers CSV. La prochaine section expliquera comment préparer les données.

Préparation des données

Avant de fusionner les fichiers CSV, il est important de comprendre quel type de données vous manipulez. Cette section décrit des fichiers CSV exemples et leur structure de données.

Fichier CSV exemple

Nous allons utiliser deux fichiers CSV comme exemple. Nous allons fusionner les fichiers « sales_january.csv » et « sales_february.csv ».

sales_january.csv

Date,Produit,Ventes
2024-01-01,Produit A,100
2024-01-02,Produit B,150
2024-01-03,Produit A,200

sales_february.csv

Date,Produit,Ventes
2024-02-01,Produit A,120
2024-02-02,Produit C,160
2024-02-03,Produit B,180

Vérification de la structure des données

Ces fichiers ont trois colonnes : date, nom du produit et ventes. Il est essentiel de comprendre cette structure avant de procéder à la fusion. Chaque fichier CSV contient les ventes d’un produit pour différentes dates.

La prochaine section expliquera comment utiliser pandas pour charger ces fichiers CSV.

Chargement de fichiers CSV avec pandas

Grâce à la bibliothèque pandas, il est facile de lire des fichiers CSV. Cette section présente les méthodes de base pour charger des fichiers CSV avec pandas.

Importer pandas

Commencez par importer pandas. En général, pandas est importé avec l’alias « pd ».

import pandas as pd

Lecture des fichiers CSV

Ensuite, utilisez la fonction read_csv pour lire les fichiers CSV. read_csv charge simplement les données du fichier dans un DataFrame pandas en spécifiant le chemin du fichier.

# Charger les données des ventes de janvier
january_sales = pd.read_csv('sales_january.csv')

# Charger les données des ventes de février
february_sales = pd.read_csv('sales_february.csv')

Vérification des données

Pour vérifier les données chargées, vous pouvez utiliser la méthode head, qui affiche les premières lignes du DataFrame.

print(january_sales.head())
print(february_sales.head())

En exécutant ce code, vous verrez le contenu des DataFrames pour vérifier que les données ont été correctement chargées.

La prochaine section expliquera comment charger plusieurs fichiers CSV en une seule fois et les stocker dans une liste.

Charger plusieurs fichiers CSV dans une liste

Pour charger plusieurs fichiers CSV à la fois et les traiter, vous pouvez les stocker dans une liste. Cela permet de gérer efficacement plusieurs fichiers à la fois.

Créer une liste des chemins de fichiers

Commencez par regrouper les chemins des fichiers CSV dans une liste. Cela permet de préparer le traitement de plusieurs fichiers en une seule opération.

# Stocker les chemins des fichiers CSV dans une liste
csv_files = ['sales_january.csv', 'sales_february.csv']

Lecture des fichiers CSV et stockage dans une liste

Ensuite, vous pouvez lire chaque fichier CSV et les stocker dans une liste de DataFrames. Un boucle permet de traiter chaque fichier un par un.

# Créer une liste pour stocker les DataFrames
data_frames = []

# Lire chaque fichier CSV et stocker dans la liste
for file in csv_files:
    df = pd.read_csv(file)
    data_frames.append(df)

Vérification des données

Vous pouvez ensuite extraire chaque DataFrame de la liste et vérifier son contenu.

for df in data_frames:
    print(df.head())

Cette méthode permet de lire et stocker efficacement plusieurs fichiers CSV dans une liste. La prochaine section expliquera comment fusionner ces fichiers CSV à l’aide de pandas.

Fusionner les fichiers CSV

Une fois que vous avez chargé plusieurs fichiers CSV, vous pouvez les fusionner en un seul DataFrame. Cette section présente les étapes spécifiques pour fusionner plusieurs fichiers CSV avec pandas.

Concaténer les données

Vous pouvez utiliser la fonction concat de pandas pour concaténer plusieurs DataFrames verticalement. Cela permet d’ajouter des lignes pour fusionner les données.

# Concaténer plusieurs DataFrames verticalement
merged_data = pd.concat(data_frames, ignore_index=True)

Explication du code

  • data_frames: Liste des DataFrames créée précédemment.
  • ignore_index=True: Ignorer les indices originaux et créer de nouveaux indices consécutifs.

Vérification des données fusionnées

Une fois la fusion terminée, vérifiez les données pour vous assurer que tout a été correctement fusionné.

print(merged_data.head())
print(merged_data.tail())

Sauvegarde des données

Pour sauvegarder les données fusionnées dans un nouveau fichier CSV, utilisez la fonction to_csv.

# Sauvegarder les données fusionnées dans un fichier CSV
merged_data.to_csv('merged_sales.csv', index=False)

Explication du code

  • 'merged_sales.csv': Nom du fichier de sortie.
  • index=False: Ne pas inclure la colonne des indices dans le fichier CSV.

En suivant cette méthode, vous pouvez fusionner plusieurs fichiers CSV en un seul DataFrame et les sauvegarder dans un nouveau fichier CSV. La prochaine section explique comment fusionner des fichiers CSV en utilisant une clé commune.

Fusion basée sur une clé

Lors de la fusion de plusieurs fichiers CSV, il est courant de les fusionner en fonction d’une clé commune. Cette section explique comment fusionner des fichiers CSV en utilisant une clé avec pandas.

Exemple de données pour la fusion

Dans cet exemple, nous allons utiliser les fichiers CSV suivants et fusionner sur la colonne Produit.

products.csv

Produit,Catégorie
Produit A,Électronique
Produit B,Ménager
Produit C,Vêtements

sales.csv

Date,Produit,Ventes
2024-01-01,Produit A,100
2024-01-02,Produit B,150
2024-01-03,Produit A,200
2024-02-01,Produit A,120
2024-02-02,Produit C,160
2024-02-03,Produit B,180

Lecture des fichiers CSV

Tout d’abord, chargeons les fichiers CSV avec pandas.

# Lire les fichiers CSV
products = pd.read_csv('products.csv')
sales = pd.read_csv('sales.csv')

Fusion des données

Ensuite, utilisez la fonction merge pour fusionner les données sur la colonne commune Produit.

# Fusionner les données
merged_data = pd.merge(sales, products, on='Produit')

Explication du code

  • sales: DataFrame des données de ventes.
  • products: DataFrame des données produits.
  • on='Produit': Fusionner les données sur la colonne Produit.

Vérification des données fusionnées

Vérifiez les données fusionnées pour vous assurer que tout est correctement fusionné.

print(merged_data.head())

Sauvegarde des données fusionnées

Enfin, sauvegardez les données fusionnées dans un nouveau fichier CSV.

# Sauvegarder les données fusionnées dans un fichier CSV
merged_data.to_csv('merged_sales_with_categories.csv', index=False)

Avec cette méthode, vous pouvez facilement fusionner plusieurs fichiers CSV basés sur une clé commune. La prochaine section abordera la vérification et la sauvegarde des données après fusion.

Vérification et sauvegarde des données fusionnées

Après avoir fusionné plusieurs fichiers CSV, il est essentiel de vérifier que les données sont correctement fusionnées et de nettoyer les données si nécessaire. Cette section explique comment vérifier et sauvegarder les données après la fusion.

Vérification des données fusionnées

Pour vérifier que les données fusionnées sont correctes, vous pouvez afficher les premières et dernières lignes, ainsi que consulter les statistiques de base des données.

# Afficher les premières lignes
print(merged_data.head())

# Afficher les dernières lignes
print(merged_data.tail())

# Afficher les statistiques de base
print(merged_data.describe())

Explication du code

  • head(): Affiche les premières lignes des données.
  • tail(): Affiche les dernières lignes des données.
  • describe(): Affiche les statistiques de base des données (moyenne, écart type, minimum, maximum, etc.).

Nettoyage des données

Si les données fusionnées contiennent des valeurs manquantes ou ne sont pas correctement fusionnées, vous devrez les nettoyer. Voici un exemple pour vérifier et traiter les valeurs manquantes.

# Vérifier les valeurs manquantes
print(merged_data.isnull().sum())

# Supprimer les valeurs manquantes
cleaned_data = merged_data.dropna()

# Ou remplacer les valeurs manquantes par une valeur spécifique
# cleaned_data = merged_data.fillna({'Ventes': 0})

Explication du code

  • isnull().sum(): Vérifie le nombre de valeurs manquantes dans chaque colonne.
  • dropna(): Supprime les lignes contenant des valeurs manquantes.
  • fillna(): Remplace les valeurs manquantes par une valeur spécifique.

Sauvegarde des données

Une fois que les données sont nettoyées, vous pouvez les sauvegarder dans un nouveau fichier CSV.

# Sauvegarder les données nettoyées dans un fichier CSV
cleaned_data.to_csv('cleaned_merged_sales.csv', index=False)

Explication du code

  • 'cleaned_merged_sales.csv': Nom du fichier de sortie.
  • index=False: Ne pas inclure la colonne des indices dans le fichier CSV.

En suivant ces étapes, vous pouvez vérifier, nettoyer et sauvegarder les données fusionnées dans un nouveau fichier CSV. La prochaine section présentera des exemples de fusion de CSV avec différentes structures de données.

Exemple avancé : Fusionner des CSV avec des structures de données différentes

Lorsque vous fusionnez des fichiers CSV avec des structures de données différentes, certaines précautions sont nécessaires. Cette section explique les méthodes et les précautions à prendre lors de la fusion de CSV ayant des structures de données différentes.

Données d’exemple

Nous allons utiliser deux fichiers CSV avec des structures de données différentes.

sales.csv

Date,Produit,Ventes
2024-01-01,Produit A,100
2024-01-02,Produit B,150
2024-01-03,Produit A,200

inventory.csv

Produit,Stock,Entrepôt
Produit A,50,Entrepôt 1
Produit B,30,Entrepôt 2
Produit C,20,Entrepôt 1

Fusion sur une clé commune

Lors de la fusion de CSV ayant des structures différentes, vous devez fusionner sur une clé commune. Ici, nous utiliserons la colonne Produit comme clé.

# Lire les fichiers CSV
sales = pd.read_csv('sales.csv')
inventory = pd.read_csv('inventory.csv')

# Fusionner les données
merged_data = pd.merge(sales, inventory, on='Produit', how='left')

Explication du code

  • how='left': Fusionner les données avec une jointure à gauche, ce qui signifie que toutes les lignes du fichier des ventes sont conservées et seules les lignes correspondantes de l’inventaire sont ajoutées.

Gestion des valeurs manquantes

Lors de la fusion de fichiers avec des structures de données différentes, des valeurs manquantes peuvent apparaître. Il est important de traiter ces valeurs manquantes.

# Vérification des valeurs manquantes
print(merged_data.isnull().sum())

# Supprimer les valeurs manquantes
cleaned_data = merged_data.dropna()

# Ou remplacer les valeurs manquantes
# cleaned_data = merged_data.fillna({'Stock': 0, 'Entrepôt': 'Inconnu'})

Explication du code

  • dropna(): Supprime les lignes contenant des valeurs manquantes.
  • fillna(): Remplace les valeurs manquantes par des valeurs spécifiées.

Sauvegarde des données

Finalement, vous pouvez sauvegarder les données fusionnées et nettoyées dans un fichier CSV.

# Sauvegarder les données fusionnées et nettoyées dans un fichier CSV
cleaned_data.to_csv('merged_sales_inventory.csv', index=False)

Explication du code

  • 'merged_sales_inventory.csv': Nom du fichier de sortie.
  • index=False: Ne pas inclure la colonne des indices dans le fichier CSV.

En utilisant cette méthode, vous pouvez fusionner efficacement des fichiers CSV avec des structures de données différentes et créer un ensemble de données unifié. La prochaine section proposera des exercices pour mettre en pratique ce que vous avez appris.

Exercices pratiques

Voici des exercices pratiques pour vous aider à réviser le chargement, la fusion, le nettoyage et la sauvegarde des fichiers CSV que nous avons abordés dans cet article.

Exercice 1: Chargement et fusion basiques de CSV

Chargez et fusionnez les deux fichiers CSV suivants en utilisant pandas.

products.csv

Produit,Prix
Produit A,100
Produit B,150
Produit C,200

sales.csv

Date,Produit,Ventes
2024-01-01,Produit A,10
2024-01-02,Produit B,15
2024-01-03,Produit C,20

Instructions:

  1. Chargez les fichiers CSV.
  2. Fusionnez les données sur la colonne Produit.
  3. Vérifiez les données fusionnées.
  4. Sauvegardez les données fusionnées dans un fichier CSV.

Exercice 2: Fusion de CSV avec structures différentes

Chargez et fusionnez les fichiers CSV suivants ayant des structures de données différentes.

customers.csv

CustomerID,Nom,Localisation
1,John Doe,New York
2,Jane Smith,Los Angeles
3,Emily Davis,Chicago

orders.csv

OrderID,CustomerID,Produit,Quantité
1001,1,Produit A,1
1002,2,Produit B,2
1003,1,Produit C,1
1004,3,Produit A,3

Instructions:

  1. Chargez les fichiers CSV.
  2. Fusionnez les données sur la colonne CustomerID.
  3. Traitez les valeurs manquantes si nécessaire.
  4. Sauvegardez les données fusionnées dans un fichier CSV.

Exercice 3: Nettoyage et sauvegarde des données

Chargez le fichier CSV suivant, gérez les valeurs manquantes et sauvegardez les données nettoyées dans un nouveau fichier CSV.

sales_data.csv

Date,Produit,Ventes
2024-01-01,Produit A,100
2024-01-02,Produit B,
2024-01-03,Produit A,200
2024-02-01,Produit A,120
2024-02-02,,160
2024-02-03,Produit B,180

Instructions:

  1. Chargez le fichier CSV.
  2. Vérifiez les valeurs manquantes.
  3. Traitez les valeurs manquantes (supprimez-les ou remplacez-les).
  4. Sauvegardez les données nettoyées dans un fichier CSV.

Ces exercices vous permettront de mettre en pratique les compétences nécessaires pour traiter efficacement des fichiers CSV dans des scénarios réels. La section suivante résumera l’ensemble de l’article.

Résumé

Dans cet article, nous avons exploré en détail comment utiliser Python pour fusionner efficacement plusieurs fichiers CSV. Voici un résumé des points principaux abordés.

Points clés

  1. Introduction à la bibliothèque pandas: L’utilisation de pandas facilite le chargement, la fusion et le nettoyage des fichiers CSV.
  2. Chargement de fichiers CSV: Utilisation de la fonction read_csv pour charger les fichiers CSV dans un DataFrame pandas.
  3. Gestion de plusieurs fichiers CSV dans une liste: Méthode pour charger plusieurs fichiers CSV en même temps et les stocker dans une liste.
  4. Fusion des données: Utilisation des fonctions concat et merge pour fusionner plusieurs fichiers CSV en un seul.
  5. Fusion basée sur une clé: Fusion de fichiers CSV en fonction d’une clé commune.
  6. Nettoyage et sauvegarde des données: Vérification et nettoyage des données fusionnées, puis sauvegarde dans un nouveau fichier CSV.
  7. Exemples et exercices pratiques: Mise en pratique de la fusion de CSV avec différentes structures de données.

Ces connaissances vous permettront de traiter efficacement plusieurs fichiers CSV et de réaliser des analyses de données ou des traitements statistiques avec facilité. Utilisez cet article comme référence et mettez ces compétences en pratique dans des situations réelles.

Sommaire