CodeGym /Cours /Python SELF FR /Écriture de données dans un fichier Excel avec la bibliot...

Écriture de données dans un fichier Excel avec la bibliothèque pandas

Python SELF FR
Niveau 27 , Leçon 3
Disponible

Salut, amis codeurs ! J'espère que ça roule pour vous, et si ce n'est pas le cas, j'espère que cette conférence améliorera un peu votre journée. Aujourd'hui, on va apprendre à écrire des données dans un fichier Excel avec notre bibliothèque préférée et ultra sympa pandas. Ouais, celle dont tout le monde a entendu parler. Cette conférence est une étape clé dans l'automatisation de tout et n'importe quoi, des rapports au suivi des finances perso. Si vous avez déjà rêvé de devenir un·e pro de l'automatisation des tableaux (et qui ne l'a pas ?), alors vous êtes au bon endroit.

1. Les bases pour écrire des données dans Excel avec pandas

Imaginez qu'on a un DataFrame rempli de chiffres et de texte, et on veut transformer ce petit trésor en fichier Excel. Comment on fait ça avec pandas ? Trop simple ! Avec la méthode magique to_excel, pandas nous facilite la tâche pour enregistrer nos données.

Comment ça marche ?

Pour enregistrer un DataFrame dans un fichier Excel, on utilise la méthode to_excel. Cette fonction nous permet de définir le nom du fichier, et par exemple, de préciser le nom de l'onglet sur lequel on va écrire nos données. Regardons un petit exemple :

Python

import pandas as pd

# Créons un petit DataFrame
data = {
    'Fruits': ['Pomme', 'Banane', 'Cerise'],
    'Quantité': [10, 5, 2]
}
df = pd.DataFrame(data)

# Écrivons le DataFrame dans un fichier Excel
df.to_excel('fruits.xlsx', sheet_name='Fruits préférés', index=False)

print("Les données ont été enregistrées avec succès dans le fichier 'fruits.xlsx'")
    

Un peu plus sur les paramètres

  • Nom du fichier : On a mis 'fruits.xlsx'. N'oubliez pas l'extension '.xlsx', sinon Excel risque de ne pas comprendre.
  • sheet_name : Ici, on a ajouté 'Fruits préférés'. C'est le nom de l'onglet dans le tableau où seront enregistrées les données.
  • index : Par défaut, pandas enregistre les index du DataFrame en tant que première colonne. En mettant index=False, on évite ça.

2. Travailler avec plusieurs onglets

Et si on écrivait des données sur plusieurs onglets dans un seul fichier Excel ? Plus de données, plus de fun ! Voici un exemple pour montrer comment c'est possible.

On va utiliser pandas.ExcelWriter, qui nous donne plus de flexibilité avec le fichier.

Python

# Création de deux DataFrame
data1 = {'Fruits': ['Pomme', 'Orange'], 'Quantité': [5, 7]}
data2 = {'Légumes': ['Carotte', 'Chou'], 'Quantité': [3, 4]}

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

# Création d'un fichier Excel avec plusieurs onglets
with pd.ExcelWriter('produits.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Fruits', index=False)
    df2.to_excel(writer, sheet_name='Légumes', index=False)

print("Les données ont été enregistrées avec succès dans le fichier 'produits.xlsx' sur différents onglets.")
    

Pourquoi en aurait-on besoin ?

Travailler avec plusieurs onglets est utile lorsque les données sont séparées logiquement, comme des rapports pour différents mois, différents types de produits, etc. Excel devient ce conteneur universel permettant de garder toutes les données dans un seul fichier, mais réparties sur des onglets.

3. Petit défi pratique

C'est le moment d'un petit challenge ! Créez un nouveau fichier Excel contenant des données sur les ventes de livres dans une librairie. Vous aurez deux onglets : un pour les ventes de livres en janvier et l'autre pour février. Voici quelques données pour vous aider à démarrer :

  • Janvier : livre "Python pour tous" (ventes : 50), "Secrets de JavaScript" (ventes : 30).
  • Février : livre "Python pour tous" (ventes : 70), "Secrets de JavaScript" (ventes : 40).

Essayez de réaliser cette tâche par vous-même, puis consultez l'exemple suivant en cas de besoin.

Python

# Exemple de solution

# Données de janvier
january_data = {'Livre': ['Python pour tous', 'Secrets de JavaScript'], 'Ventes': [50, 30]}
january_df = pd.DataFrame(january_data)

# Données de février
february_data = {'Livre': ['Python pour tous', 'Secrets de JavaScript'], 'Ventes': [70, 40]}
february_df = pd.DataFrame(february_data)

# Création d'un fichier Excel avec les données des deux mois
with pd.ExcelWriter('ventes_livres.xlsx') as writer:
    january_df.to_excel(writer, sheet_name='Janvier', index=False)
    february_df.to_excel(writer, sheet_name='Février', index=False)

print("Les données ont été enregistrées avec succès dans le fichier 'ventes_livres.xlsx'.")
    

Regardez le fichier ventes_livres.xlsx, ouvrez-le et admirez les onglets créés !

4. Discussion des solutions et optimisation

Comme vous avez pu le voir, écrire des données dans Excel avec pandas est assez simple. Cependant, il y a quelques points à garder à l'esprit :

  • Optimisation de la mémoire : Si vous avez de gros DataFrame, pensez à diviser les données en parties et à les enregistrer séquentiellement.
  • Formatage : Vous pouvez ajouter du style, comme formater les en-têtes de table. Cela nécessite l'utilisation de la bibliothèque supplémentaire openpyxl et ses méthodes.
  • Écritures multiples : Si vous prévoyez d'écrire souvent dans le même fichier, pensez à utiliser mode='a' dans ExcelWriter pour ajouter de nouvelles données aux données existantes.

Quelques idées d'amélioration pour le futur

À l'avenir, quand vous serez le roi (ou la reine !) de l'automatisation, vous devrez être capable de repérer et de corriger des problèmes. Par exemple, si votre entreprise décide de collecter des rapports pour chaque jour du mois, vous pourrez utiliser pandas et ExcelWriter pour automatiser tout ça. Peut-être pourriez-vous même automatiser la vérification des week-ends et jours fériés pour ne pas enregistrer ces jours-là.

Alors, n'ayez pas peur d'expérimenter et d'optimiser votre travail ! Python avec pandas, c'est l'outil parfait pour ça.

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