1ere N.S.I Indexer, rechercher, trier, fusionner des tables SYNTHESE : Synthèse
1ere N.S.I Indexer, rechercher, trier, fusionner des tables SYNTHESE : Synthèse Traitement des données en tables Extrait de NSI Spécialité, Cours entrainement HATIER 1- Conversion odt, xls, xlx vers format CSV ( tableur importer ) 614288153.doc 1/3 1 2 3 4 5 6 7 8 2- Conversion format CSV vers odt, xls, xlx ( tableur exporter) , ) 3- Import CSV (python) import csv def depuis_csv(fichier): lecteur = csv.DictReader(open(fichier + ".csv", 'r')) return [dict(ligne) for ligne in lecteur] # depuis_csv("ident_virgule") 4- Export vers fichier CSV (python) import csv def vers_csv(fichier, nom, ordre): with open(fichier + ".csv", 'w', newline='') as csvfile: dic = csv.DictWriter(csvfile,fieldnames=ordre) dic.writeheader() # écrire la 1er ligne, celle des attributs for ligne in table: dic.writerow(ligne) # ajoute les ligne de la table return None ordre = ["Nom", "Anglais", "Info", "Maths"] nom_fichier_export = "export_table" vers_csv(nom_fichier_export, table, ordre) 5- Sélection de lignes vérifiant un critère def select_ligne(table, critere) : Resultat = [] for ligne in table: if eval(critere) : Resultat.append(ligne) return Resultat Critere = "eval(ligne['Maths']) > 16" select_ligne(Table1, Critere) 6- Sélection de colonnes vérifiant un attribut def projection(table, list_attributs): return [{cle:ligne[cle] for cle in ligne if cle in list_attributs} for ligne in table] projection(Table1, ["Nom" , "Info"]) 614288153.doc 2/3 7- Tri d’une table selon une colonne def tri(table, attribut, ordre_tri): def critere(ligne): return ligne[attribut] return sorted(table, key=critere, reverse=ordre_tri) tri(Table1, "Anglais", True) argument1 est la table à trier argument2 est la clé = nom de la colonne à trier argument3 est la reverse=True(décroissant) ou False(croissant) 8- Jointure de table ou (fusion) from copy import deepcopy def Jointure(table1, table2, cle1, cle2) : new_table = [] for ligne1 in table1 : for ligne2 in table2 : if ligne1[cle1] == ligne2[cle2] : new_ligne = deepcopy(ligne1) for cle in ligne2 : if cle != cle2 : new_ligne[cle] = ligne2[cle] new_table.append(new_ligne) return new_table fusion = Jointure(Table1, Table2, "Nom", "Nom") print(fusion) 614288153.doc 3/3 uploads/Litterature/ 4-synthese-sequence-1d-representation-des-donnees.pdf
Documents similaires
-
21
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 16, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.5077MB