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 :
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 mettantindex=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.
# 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.
# 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'
dansExcelWriter
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.
GO TO FULL VERSION