02A3 : Python vers Excel avec Pandas
Utilisation du module Pandas⚓
Ici, on introduit le module pandas afin de transmettre à un objet pandas nos listes de dimension 1 dans une structure à deux dimensions propres à pandas afin de nous décharger de la phase de gestion des objets classeurs, feuilles, et aussi de gérer la structure boucle afin d'écrire dans chaque cellule les éléments de chaque liste.
Code⚓
# nom du programme : TD_02_A3_1_pandas.py
import subprocess
import pandas as pd
from unidecode import unidecode
# fonction destinnée à générer les compétences dans Excel
def genere_feuille_excel_competences(pathXlsx):
id = [1, 2, 3, 4, 5]
name = ['Maintenir', 'Améliorer', 'Installer', 'Manager', 'Sécuriser']
code = [unidecode(name[:3]).upper() for name in name]
validation = ["Non évalué"] * 5
# On génère une structure de données de type data frame constituée de nos listes
df = pd.DataFrame({'id': id, 'code': code, 'name': name, 'validation': validation})
print(df)
# la dataframe pandas est écrite dans la feuille de calcul
df.to_excel(pathfileexcel, sheet_name="competences", index=False)
# programme principal
pathfileexcel="D:\\SRP\\EDC-01_NOTES\\TD\\test_TD_02_A3_1_pandas.xlsx"
genere_feuille_excel_competences(pathfileexcel)
subprocess.Popen(['start', 'excel', pathfileexcel], shell=True)
Amélioration du code⚓
Ici, nous avons une procédure qui permet de générer la feuille de calcul qui va permettre de clarifier le code.
On va réaliser des tests qui, souvent, partiront de la même base pour les données constituées dans les tableaux à une dimension (id, code, name)
On va voir que d'autres tables que compétences auront une structure proche au minimum via les champs id, code, name.
Il y a donc une grosse réflexion à faire pour structurer le code : c'est ce que nous verrons un peu plus loin.