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

1
# nom du programme : TD_02_A3_1_pandas.py
2
import subprocess
3
import pandas as pd
4
from unidecode import unidecode
5
6
# fonction destinnée à générer les compétences dans Excel
7
def genere_feuille_excel_competences(pathXlsx):
8
   
9
    id = [1, 2, 3, 4, 5]
10
    name = ['Maintenir', 'Améliorer', 'Installer', 'Manager', 'Sécuriser']
11
    code = [unidecode(name[:3]).upper() for name in name]
12
    validation = ["Non évalué"] * 5
13
    # On génère une structure de données de type data frame constituée de nos listes
14
    df = pd.DataFrame({'id': id, 'code': code, 'name': name, 'validation': validation})
15
    print(df)
16
    # la dataframe pandas est écrite dans la feuille de calcul
17
    df.to_excel(pathfileexcel, sheet_name="competences", index=False)
18
# programme principal
19
pathfileexcel="D:\\SRP\\EDC-01_NOTES\\TD\\test_TD_02_A3_1_pandas.xlsx"
20
genere_feuille_excel_competences(pathfileexcel)
21
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.