CodeGym /Cours Java /Python SELF FR /Fusion de données provenant de plusieurs feuilles et fich...

Fusion de données provenant de plusieurs feuilles et fichiers Excel

Python SELF FR
Niveau 28 , Leçon 1
Disponible

1. Pourquoi fusionner des données ?

Dans le monde actuel des données, il est assez rare de trouver toutes les informations nécessaires dans un seul fichier. Le plus souvent, les données sont dispersées dans plusieurs tableaux et fichiers, et une analyse complète nécessite de les fusionner. Par exemple, vous pourriez avoir des données de ventes mensuelles dans des fichiers séparés. Pour analyser les tendances globales, il faut combiner ces données dans un seul tableau.

En plus, fusionner les données permet de :

  • Gagner du temps sur la création manuelle de rapports.
  • Réduire le nombre d'erreurs liées au transfert manuel des données.
  • Automatiser le processus de travail d’analyse de données.

2. Méthodes de fusion des données

Concaténation de données

La fusion verticale et horizontale des données s'appelle concaténation. Prenons un exemple simple : nous avons deux DataFrame que nous voulons fusionner.

Python

import pandas as pd

# Créons deux DataFrame avec une structure similaire
data1 = {
    'Product': ['Pommes', 'Bananes'],
    'Sales': [100, 150]
}

data2 = {
    'Product': ['Cerises', 'Dattes'],
    'Sales': [75, 200]
}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Concaténation verticale (ajout des lignes)
combined = pd.concat([df1, df2], ignore_index=True)
print(combined)

Le résultat est un DataFrame fusionné contenant toutes les lignes des deux sources. Remarquez le paramètre ignore_index=True, qui réinitialise les index dans le DataFrame final.

Fusion des données avec la méthode merge

Lorsque vous avez des données à fusionner basées sur des colonnes communes (par exemple, id ou Product), la méthode merge vient à la rescousse. C’est comme un rendez-vous pour vos données — elles doivent avoir quelque chose en commun pour que cela fonctionne.

Python

# Créons un exemple de données
sales_data = {
    'Product': ['Pommes', 'Bananes', 'Cerises'],
    'Sales': [100, 150, 75]
}

price_data = {
    'Product': ['Pommes', 'Bananes', 'Dattes'],
    'Price': [1.2, 0.8, 3.0]
}

sales_df = pd.DataFrame(sales_data)
price_df = pd.DataFrame(price_data)

# Fusionnons les DataFrame sur la colonne 'Product'
merged_df = pd.merge(sales_df, price_df, on='Product', how='inner')
print(merged_df)

Bien que nous ayons des informations sur chaque produit, merge ne renvoie que les lignes qui ont une correspondance sur la colonne clé Product.

Explorons les types de fusions :

  • inner (par défaut) : ne renvoie que les lignes présentes dans les deux DataFrame.
  • outer : renvoie toutes les lignes, en remplaçant les valeurs manquantes par NaN.
  • left : renvoie toutes les lignes du DataFrame gauche et les lignes correspondantes du droit.
  • right : renvoie toutes les lignes du DataFrame droit et les lignes correspondantes du gauche.

Fusion de données à partir de plusieurs feuilles

Maintenant que nous avons revu le fonctionnement de la fusion dans pandas, appliquons ces connaissances en pratique pour fusionner des données de plusieurs feuilles d’un fichier Excel.

Python

# Lecture d'un fichier Excel avec plusieurs feuilles
excel_file = pd.ExcelFile('sales_data.xlsx')

# Liste des noms de toutes les feuilles
sheet_names = excel_file.sheet_names

# Lecture des données de chaque feuille dans un DataFrame distinct et ajout à une liste
dataframes = [pd.read_excel(excel_file, sheet_name=sheet_name) for sheet_name in sheet_names]

# Effectuons une concaténation verticale de tous les DataFrame
all_sales_data = pd.concat(dataframes, ignore_index=True)

print(all_sales_data)

Dans cet exemple, nous lisons toutes les feuilles d’un fichier Excel dans des DataFrame distincts, puis nous les fusionnons en un seul. Impressionnant, non ?

Fusion de données provenant de plusieurs fichiers

En pratique, il est fréquent que les données soient réparties sur plusieurs fichiers. Voyons comment automatiser leur fusion.

Python

import glob

# Chemin vers les fichiers
file_path = r'data/sales_*.xlsx'

# Obtenons une liste de tous les fichiers correspondant au modèle
files = glob.glob(file_path)

# Lecture des données de chaque fichier dans un DataFrame distinct et ajout à une liste
dataframes = [pd.read_excel(file) for file in files]

# Effectuons une concaténation verticale de tous les DataFrame
all_files_data = pd.concat(dataframes, ignore_index=True)

print(all_files_data)

Nous utilisons la bibliothèque glob pour obtenir une liste de fichiers correspondant au modèle spécifié, puis nous fusionnons les données de chaque fichier en un seul DataFrame.

3. Exemples réels d’utilisation

Fusion de données pour une analyse commerciale

Supposons que vous êtes analyste et que vous travaillez avec des données de ventes mensuelles dans des fichiers séparés. Avec les techniques mentionnées ci-dessus, vous pouvez facilement fusionner les données pour analyser les tendances annuelles et en tirer des conclusions pertinentes.

Automatisation des rapports

Grâce à l’automatisation de la fusion des données, vous pouvez configurer un script qui collectera des informations provenant de différentes sources et générera automatiquement des rapports quotidiens, hebdomadaires ou mensuels.

Traitement de données provenant de différentes sources

Vos données peuvent provenir de différents systèmes, où chaque source fournit une partie de l’information. Avec pandas, vous pouvez les fusionner pour obtenir une vue d'ensemble, par exemple en combinant des données sur les clients et leurs achats.

4. Erreurs typiques et leurs corrections

Une erreur fréquente est le décalage des noms de colonnes dans les DataFrame à fusionner. Assurez-vous que les colonnes par lesquelles vous fusionnez les données sont identiques et, si nécessaire, utilisez les paramètres left_on et right_on dans la méthode merge.

Parfois, les données peuvent contenir des valeurs manquantes après fusion. Utilisez les méthodes de remplissage de valeurs fillna ou de suppression dropna pour résoudre ce problème.

Si vos données contiennent des doublons, la méthode concat peut produire un DataFrame plus long que prévu. Dans ce cas, utilisez la méthode drop_duplicates pour nettoyer les données.

Maintenant que nous avons abordé les différentes méthodes et astuces pour fusionner des données avec pandas, vous avez les outils nécessaires pour gérer des tâches réelles d’automatisation et d’analyse de données. Profitez-en et amusez-vous !

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION