Pandas et Excel : Un duo gagnant pour l'analyse de données
Pandas est une bibliothèque Python open source qui offre des structures de données performantes et faciles à utiliser, ainsi que des outils d'analyse de données. Excel, quant à lui, est un tableur largement utilisé pour organiser et visualiser des données. Combiner les deux permet de surmonter les limitations de chacun et d'améliorer considérablement votre flux de travail.
Pourquoi utiliser Pandas avec Excel ?
- Dépassement des limites d'Excel : Excel a des limitations en termes de taille de données et de complexité des analyses. Pandas peut gérer des ensembles de données beaucoup plus volumineux et effectuer des opérations complexes plus efficacement.
- Automatisation des tâches : Pandas permet d'automatiser les tâches répétitives de manipulation et d'analyse de données, ce qui vous fait gagner du temps et réduit les risques d'erreurs.
- Flexibilité et puissance de Python : Pandas s'intègre parfaitement à l'écosystème Python, vous donnant accès à une vaste gamme de bibliothèques pour l'analyse statistique, la visualisation de données, le machine learning, etc.
- Reproductibilité : En utilisant Pandas, vous pouvez créer des scripts reproductibles pour vos analyses, ce qui facilite la collaboration et le partage de vos résultats.
Prérequis
Avant de commencer, assurez-vous d'avoir les éléments suivants :
- Python installé : Téléchargez et installez Python depuis le site officiel (https://www.python.org/).
- Pandas installé : Ouvrez votre terminal ou invite de commandes et exécutez la commande
pip install pandas. - Excel installé : Vous aurez besoin d'une version d'Excel installée sur votre ordinateur.
Lire des données Excel avec Pandas
La première étape pour combiner Pandas et Excel consiste à lire les données de votre fichier Excel dans un DataFrame Pandas. Un DataFrame est une structure de données tabulaire, similaire à une feuille de calcul Excel.
La fonction read_excel()
Pandas fournit la fonction read_excel() pour lire les données Excel. Voici un exemple simple :
import pandas as pd
df = pd.read_excel('mon_fichier.xlsx')
print(df)
Explication :
import pandas as pd: Importe la bibliothèque Pandas et lui donne l'aliaspdpour une utilisation plus concise.df = pd.read_excel('mon_fichier.xlsx'): Lit les données du fichier Excelmon_fichier.xlsxet les stocke dans un DataFrame appelédf.print(df): Affiche le contenu du DataFrame.
Exemple concret :
Supposons que vous ayez un fichier Excel nommé ventes.xlsx avec les colonnes Date, Produit, Quantité, et Prix. L'exécution du code ci-dessus affichera le contenu de ce fichier dans votre console.
Options importantes de read_excel() :
sheet_name: Spécifie la feuille de calcul à lire (par défaut, la première feuille).header: Indique la ligne contenant les noms de colonnes (par défaut, la première ligne).index_col: Spécifie la colonne à utiliser comme index du DataFrame.usecols: Sélectionne les colonnes à importer.skiprows: Ignore les premières lignes du fichier.nrows: Lit un nombre limité de lignes.
Exemple avec options :
df = pd.read_excel('ventes.xlsx', sheet_name='Feuil2', header=0, index_col='Date', usecols=['Date', 'Produit', 'Quantité'])
print(df)
Explication :
sheet_name='Feuil2': Lit les données de la feuille de calcul nommée "Feuil2".header=0: Utilise la première ligne (index 0) comme noms de colonnes.index_col='Date': Utilise la colonne "Date" comme index du DataFrame.usecols=['Date', 'Produit', 'Quantité']: Importe uniquement les colonnes "Date", "Produit", et "Quantité".
Gérer les erreurs courantes
- Fichier non trouvé : Assurez-vous que le fichier Excel existe à l'emplacement spécifié et que le chemin d'accès est correct.
- Sheet name incorrect : Vérifiez que le nom de la feuille de calcul est correct.
- Types de données incorrects : Pandas peut parfois mal interpréter les types de données. Vous pouvez spécifier les types de données explicitement à l'aide de l'argument
dtypede la fonctionread_excel(). Par exemple:
df = pd.read_excel('ventes.xlsx', dtype={'Quantité': int, 'Prix': float})
Écrire des données Pandas dans un fichier Excel
Une fois que vous avez manipulé vos données avec Pandas, vous pouvez les exporter vers un fichier Excel.
La fonction to_excel()
Pandas fournit la fonction to_excel() pour écrire un DataFrame dans un fichier Excel. Voici un exemple :
df.to_excel('nouveau_fichier.xlsx', index=False)
Explication :
df.to_excel('nouveau_fichier.xlsx', index=False): Écrit le DataFramedfdans un fichier Excel nomménouveau_fichier.xlsx. L'argumentindex=Falseempêche l'index du DataFrame d'être écrit dans le fichier Excel.
Options importantes de to_excel() :
sheet_name: Spécifie le nom de la feuille de calcul.header: Indique si les noms de colonnes doivent être écrits (par défaut,True).index: Indique si l'index du DataFrame doit être écrit (par défaut,True).startrow: Spécifie la ligne de départ pour l'écriture des données.startcol: Spécifie la colonne de départ pour l'écriture des données.
Exemple avec options :
df.to_excel('nouveau_fichier.xlsx', sheet_name='Résultats', header=True, index=False, startrow=1, startcol=2)
Explication :
sheet_name='Résultats': Écrit les données dans une feuille de calcul nommée "Résultats".header=True: Écrit les noms de colonnes.index=False: N'écrit pas l'index du DataFrame.startrow=1: Commence à écrire les données à partir de la ligne 2 (index 1).startcol=2: Commence à écrire les données à partir de la colonne C (index 2).
Formater les données Excel avec Pandas et Openpyxl
Bien que to_excel() permette d'écrire des données dans un fichier Excel, il ne permet pas de formater les données directement. Pour un formatage plus avancé, vous pouvez utiliser la bibliothèque openpyxl en combinaison avec Pandas.
import pandas as pd
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
df = pd.DataFrame({'Colonne A': [1, 2, 3], 'Colonne B': [4, 5, 6]})
# Créer un fichier Excel (ou en charger un existant)
with pd.ExcelWriter('fichier_formatte.xlsx', engine='openpyxl') as writer:
df.to_excel(writer, sheet_name='Feuil1', index=False)
# Charger le workbook pour le formatage
workbook = writer.book
worksheet = writer.sheets['Feuil1']
# Formater la colonne A en gras
for cell in worksheet['A']:
cell.font = openpyxl.styles.Font(bold=True)
# Formater la colonne B avec un format numérique
for cell in worksheet['B']:
cell.number_format = '0.00'
Explication :
- On utilise
ExcelWriteravec le moteuropenpyxlpour créer ou charger un fichier Excel. - On écrit le DataFrame dans une feuille.
- On charge le workbook
openpyxlpour accéder aux fonctionnalités de formatage. - On itère sur les cellules de chaque colonne et on applique le format souhaité.
Ce code est un squelette. Vous pouvez adapter le formatage (couleurs, bordures, alignement, etc.) selon vos besoins en explorant la documentation d'Openpyxl.
Exemples d'utilisation concrets
Analyse des ventes
Supposons que vous ayez un fichier Excel contenant des données de ventes. Vous pouvez utiliser Pandas pour :
- Calculer le total des ventes par produit.
- Identifier les produits les plus vendus.
- Calculer la moyenne des ventes par mois.
- Créer des graphiques pour visualiser les données.
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('ventes.xlsx')
# Calculer le total des ventes par produit
total_ventes_par_produit = df.groupby('Produit')['Quantité'].sum()
print(total_ventes_par_produit)
# Identifier les produits les plus vendus
produits_les_plus_vendus = total_ventes_par_produit.sort_values(ascending=False)
print(produits_les_plus_vendus)
# Créer un graphique
produits_les_plus_vendus.plot(kind='bar')
plt.title('Ventes par produit')
plt.xlabel('Produit')
plt.ylabel('Quantité vendue')
plt.show()
Nettoyage des données
Pandas est également très utile pour nettoyer les données Excel.
- Supprimer les lignes ou colonnes vides.
- Remplacer les valeurs manquantes.
- Convertir les types de données.
- Supprimer les doublons.
import pandas as pd
df = pd.read_excel('donnees_sales.xlsx')
# Supprimer les lignes avec des valeurs manquantes
df = df.dropna()
# Remplacer les valeurs manquantes par 0
df = df.fillna(0)
# Convertir la colonne "Date" en type datetime
df['Date'] = pd.to_datetime(df['Date'])
# Supprimer les doublons
df = df.drop_duplicates()
print(df)
Bonnes pratiques et erreurs à éviter
- Utiliser des noms de colonnes clairs et cohérents : Cela facilite la manipulation des données et rend votre code plus lisible.
- Spécifier les types de données : Cela évite les erreurs d'interprétation des données.
- Gérer les valeurs manquantes : Décidez comment traiter les valeurs manquantes (suppression, remplacement, etc.).
- Tester votre code : Vérifiez que votre code fonctionne correctement et produit les résultats attendus.
- Ne pas stocker de données sensibles directement dans le code : Utilisez des variables d'environnement ou des fichiers de configuration pour stocker les informations sensibles comme les mots de passe.
Conclusion
L'intégration de Pandas et Excel offre une solution puissante et flexible pour l'analyse de données. En combinant la familiarité d'Excel avec la puissance de Pandas, vous pouvez automatiser vos tâches, gérer des ensembles de données volumineux et effectuer des analyses complexes plus efficacement. N'hésitez pas à explorer les nombreuses fonctionnalités de Pandas et à les adapter à vos besoins spécifiques pour optimiser votre flux de travail.