Cours IA
Cours IA
Cours IA
I- Définitions
1- Base de données
Une base de donnés est une entité dans laquelle il est possible de stocker des données de façon structurée et avec le
moins de redondance possible. Ces données doivent pouvoir être utilisées par des programmes ou par des utilisateurs
simultanément et en temps optimal.
Retenons : Une base de données est un ensemble structuré de données enregistrées dans des tables, chaque table
représente un objet du monde réel, par exemple élève.
Activité1 : On demande de classer les données relatives aux élèves de votre classe telle que (ID_Eleve, nom, prénom,
date_naissance, classe). Pour organiser ces différentes données qu’est-ce qu’on peut utiliser pour les rangées ?
Solution :
Ces données peuvent être organisé dans un tableau.
ELEVE
Nom Prénom Date de naissance
ID_ELEVE Classe
L’un des caractéristiques d’un tableau est que les données d’une même colonne sont de même type.
Constatation Colonnes
Lignes
Les données peuvent être classées sous forme d’un tableau cette structure est appelé TABLE dans la base de
données.
Table : c’est une collection de données relatives à un sujet spécifique tel qu’un élève, un véhicule, un client,
repartie en colonnes (champs) et en lignes (enregistrements.
Une colonne d’une table est appelé champs ou attribut qui regroupe les informations de même type.
Une ligne d’une table est appelé enregistrement ou N-uplet qui correspond à toutes les informations
concernant un élève.
On peut trouver plusieurs tables dans une même base de données
Page -1-
Activité 2 : On se propose de donner une base de données appelée « GESTION DE NOTES » représentant des
données concernant des élèves, leurs classes et ces notes.
ELEVE
ID_ELEVE Nom Prénom Date de naissance Classe
MATIERE
ID_MATIERE Libellé matière Coefficient
NOTE
ID_ELEVE ID_MATIERE Note
La table ELEVE est formée par des colonnes (ID_ELEVE, Nom, Prénom, date de naissance et classe)
appelées champs et des lignes appelées enregistrements ou N-uplets.
Le champ ID_ELEVE représente l’identifiant unique des enregistrements de la table, on l’appelle clé
primaire.
Schéma d’une table : Le schéma d’une table est donné par l’ensemble de ses attributs (champs).
Exemple :
Le schéma de la table ELEVE est :
ELEVE (ID_ELEVE, Nom, Prénom, date de naissance, classe)
Schéma d’une base de données : Le schéma d’une base de données est l’ensemble des schémas des tables de la base.
Activité 3 :
Donner Le schéma de la base de données « GESTION DE NOTES ».
Solution :
Le schéma de la base de données « GESTION DE NOTES » est :
ELEVE (ID_ELEVE, Nom, Prenom, date de naissance, classe)
MATIERE (ID_MATIERE, Libelle_matiere, Coefficient)
NOTE ( #ID_ELEVE, #ID_MATIERE, Note)
Page -2-
2- Créer une base de données vide
Bouton Office
Nouveau
Base de donnée vide
Préciser le nom et l’emplacement de la base
Créer
Soit la description des colonnes des tables de la base de données "gestion de note":
Nom Description Type Taille Format Contrainte
ID_eleve Le code d’un élève Texte court 4 Non vide
ID_matiere Le code d’une matière Texte court 3 Non vide
Nom Nom Nom d’un élève Texte court 20
Prénom Prénom d’un élève Texte court 10
Libellé matière Libellé d’une matière Texte court 30
date de naissance date de naissance d’un élève Date/Heure Date abrégé
classe Classe d’un élève Texte court
Coef Coefficient d’une matière Numérique Entier long Par défaut 1
Note d’un élève dans une matière Nombre général Supérieure
Note Numérique réel (2 chiffres après ou égal à
la virgule) zéro
Page -3-
Page -4-
Remarque : si la clé primaire est composée de plusieurs colonnes, on utilise la touche Ctrl du clavier pour
sélectionner toutes les colonnes qui constituent la clé primaire.
Attention : pas d’accent et pas d’espace dans les noms de champ
Une clé primaire est un ou plusieurs champs dont la ou les valeurs identifient de façon unique chaque enregistrement
d’une table. Une clé primaire n’accepte pas les valeurs nulles. Une clé primaire sert à relier une table à des clés étrangères
se trouvant dans d’autres tables.
4. Les relations
4.1. Définition
Une relation est un lien entre 2 tables d’une BD à l’aide de 2 champs en commun à ces 2 tables. Ces 2 champs sont
dits : associés. Un tel champ est la clé primaire de l’une des tables et la clé étrangère dans l’autre table associée.
Remarque :
Une relation est un lien entre 2 tables d’une BD à l’aide de 2 champs en commun.
L’avantage de relier des tables sur des champs en commun est d’éviter la redondance (avoir une même information
plusieurs fois).
Relation un à plusieurs (1-N) : Signifie que chaque enregistrement de la 1ère table (contenant la clé primaire)
peut être associé à plusieurs enregistrements de la 2ème table.
Exemple : Un élève peut avoir plusieurs notes alors qu’une note dans une matière ne peut être affectée qu’à un seul
élève. On définit ainsi une relation de type 1-N.
Une relation un à plusieurs (1-N) est créé
si l’un des deux champs liés sont des clés
primaires.
Relation plusieurs à plusieurs (N-M) : Signifie que chaque enregistrement de la 1ère table (contenant la clé
primaire) peut être associé à plusieurs enregistrements de la 2ème table et inversement.
Exemple : Un type de produit peut être fabriqué par plusieurs usines et une usine peut fabriquer plusieurs types de
produits. On définit ainsi une relation de type N-M
Page -5-
Une relation plusieurs-à- plusieurs
(N-M) est composée de deux
relations un-à-plusieurs avec une
troisième table
Créer les relations possibles entre ses tables en admettant les règles décrites précédemment
Onglet « Outil de bases de donnée »
Groupe « Afficher / masquer »
Bouton « Relations »
Sélectionner les clés primaires des tables et les glisser en maintenant le bouton gauche de la souris enfoncé vers
les clés étrangères des autres tables
Par exemple : sélectionner la clé primaire id_eleve de la table élève et le glisser, en maintenant le bouton gauche de la
souris, vers la clé étrangère de la table note.
Vérifier dans la boite de dialogue affichée, les champs et l’intégrité référentielle.
Valider ce paramètre en cliquant sur « Créer ».
Page -6-
Appliquer l’intégrité référentielle : signifie que lorsqu’on insère une ligne dans la table fille, le SGBD vérifie que la
valeur saisie dans la colonne clé étrangère existe dans la colonne clé primaire de la table mère.
Remarque :
La clé primaire et la clé étrangère doivent être de même type.
Une clé primaire identifie d’une façon unique chaque enregistrement de la table.
Dans une BD, chaque table doit avoir une clé primaire.
Une clé primaire peut être composée de plusieurs champs et lie, généralement, les informations communes à
plusieurs tables
La plupart du temps il est plus judicieux de choisir un nombre ou une référence, pour éviter les problèmes de
doublons.
Lorsqu’on ne précise pas clé primaire le SGBD ajoute automatiquement un nouveau champ et le considère
comme clé primaire
La clé primaire est très importante dans une table car le SGBD empêche: Les doublons et les valeurs nulles pour
la clé primaire
Page -7-
Sélectionner l’objet tables
Double clic sur la table à remplir
Dans la fenêtre qui apparaît saisir les différents enregistrements
Remarque :
Dans la saisie il ne faut jamais que la clé primaire soit vide.
Il ne faut pas que deux enregistrements aient une même clé primaire.
Page -8-
Ou bien
Double-cliquer sur le nom de la requête.
Le résultat s’affiche sous la forme d’une table comme suit :
Requête1
ID_Eleve Nom Prénom Date de naissance classe
E001 Salami zohra 14/12/1990 4 eco2
E004 Ben mahmoud saber 15/09/1990 4 eco2
La sélection permet de rechercher des informations dans des BD généralement, une requête de sélection :
- S’applique soit à une seule table ou à plusieurs tables liées par des relations,
- Permet d’afficher des informations en appliquant un ou a plusieurs critères sur un ou plusieurs champs
- Permet d’enregistrer le résultat sous forme de tables.
- On peut utiliser dans les requêtes les opérateurs suivants :
- = égal
- <> différent
- < Inférieur
- > supérieur
- <=inférieur ou égal
- >=supérieur ou égal
Question 1 : Afficher la liste des élèves triée dans l’ordre croissant des noms
Il faut choisir « Croissant » sous le champ « Nom » sur la ligne Tri.
Question 4 : Afficher les élèves dont les noms commencent par la lettre « B »
Il faut écrire « Comme "B*" » sous le champ « Nom » sur la ligne Critère.
Page -9-
Question 5 : Afficher les élèves nés après le 01/01/1989
Il faut écrire « >#01/01/1989# » sous le champ « Date_nais » sur la ligne Critère.
Question 6 : Afficher les élèves dont les noms commencent par la lettre « A » et nés après le 01/01/1989
Il faut écrire « Comme "A*" » sous le champ « Nom » et « >#01/01/1989# » sous le champ « Date_nais », les deux
sur la ligne Critère.
Question 7 : Afficher les noms et les prénoms des élèves qui ont une note égale à 10
Dans ce cas, on va ajouter deux tables obligatoirement liées et non pas une, la table ELEVE et la table NOTE.
Ensuite, glisser les champs Nom et Prénom de la table ELEVE et le champ Notes de la table NOTE.
Ecrire « 10 » sous le champ « Notes » sur la ligne Critère.
Question 8 : Afficher les libellés des matières dans lesquelles les élèves ont des notes supérieures à 10
Ajouter les deux tables MATIERE et la table NOTE.
Ensuite, glisser les champs Libellé_matière de la table MATIERE et le champ Notes de la table NOTE.
Ecrire « >10 » sous le champ « Notes » sur la ligne Critère.
Question 9 : Créer une requête paramétrée nommée « Classe » : permettant d’afficher les élèves d’une classe donnée.
Page -10-
6.2.3. Les requêtes de mise à jour
a) Définition
C'est une requête qui apporte des changements globaux à des enregistrements dans une ou plusieurs tables.
b) Création d’une requête de mise à jour
Pour créer une requête de mise à jour:
Onglet « créer »
Groupe « autre »
Bouton « création de requête »
Onglet « créer »
Groupe « type de requête »
Bouton « mise à jour»
Dans la grille de création de la requête, fixer les champs et leurs tables à utiliser, cocher les cases des attributs à afficher
et fixer les critères et la valeur de mise à jour
Question 10 : Ecrire la requête qui permet d’augmenter de 1 point les notes des élèves
a) Choisir l’objet « Requêtes » de la fenêtre « Bases de données »
b) Cliquer sur le bouton « Nouveau » puis choisir « Mode création »
c) Dans le menu «Requête », choisir la commande « Requête Mise à jour »
d) Dans la grille de création des requêtes, ajouter la table NOTE et glisser le champ Note à mettre à jour
e) Dans la ligne « Mise à jour », taper la modification : [Note]+ 1
f) Enregistrer la requête
g) Exécuter la requête pour voir le résultat
Question 11: Ecrire la requête qui permet de modifier la classe par 4 ECO 2 de l’élève ayant un prénom Amal
a) Choisir l’objet « Requêtes » de la fenêtre « Bases de données »
b) Cliquer sur le bouton « Nouveau » puis choisir « Mode création »
c) Dans le menu «Requête », choisir la commande « Requête Mise à jour »
d) Dans la grille de création des requêtes, ajouter la table ELEVE et glisser le champ Classe à mettre à jour et le
champ Prénom pour fixer le critère
e) Dans la ligne « Mise à jour » du champ Classe, taper la nouvelle classe : 4 Eco 2
f) Dans la ligne « critère » du champ Prénom, taper le nom de l’élève à mettre à jour : Amal
g) Enregistrer la requête
h) Exécuter la requête pour voir le résultat
Page -11-
et fixer les critères de suppression
Question 12 : Ecrire la requête qui permet de supprimer l’élève dont le code est « E001 ».
Le fichier Excel est créé à l’emplacement choisi, et si vous avez coché la deuxième option, il est même directement
ouvert dans Excel.
Page -13-
8. Exporter une table ou une requête vers un fichier csv ou txt
Pour exporter une table ou requête à un Fichier txt ou csv on doit parcourir par les étapes suivantes:
1) Sélectionner la table ou la requête voulue (exemple : table Classe)
2) Dérouler le Menu contextuel
3) Exporter
4) Choisir le type de fichier : Fichier texte
Page -15-
Dans cette étape cocher le délimiteur « Point virgule » et inclure les noms des champs sur la première ligne
Cliquer sur le bouton Avancé…une fenêtre qui s’affiche (…..spécification d’exportation)
Dans la zone langue cliquer sur « Tous »
Et dans la zone page de codes choisir « unicode UTF-8 »
Page -16-
Valider par OK
Valider par Suivant
Valider par Terminer si vous êtes d’accord pour le nom du fichier et leur emplacement (sinon Annuler et
répéter votre travaille)
Page -17-
Page -18-
TP1
Dans le dossier 4 EG du lecteur D : dans lequel vous devez enregistrer tous les fichiers solution de cette activité :
On se propose de créer la base de données « gestion de notes » définie par les tables suivantes :
Élève (id_eleve, nom, prénom, date naissance, classe)
Matière (id_matière, libellé, coef)
Note ( id_eleve, id_matière, note)
Les champs soulignés représentent les clés primaires des tables.
1- Lancer le logiciel de création de base de données disponible
2- Créer la base de données « gestion de notes » dans le dossier 4 EG du lecteur D:
3- Créer les tables de cette base de données ainsi que les relations qui les relient
4- Remplir les tables par les données suivantes :
Table : Elève
Table : Matière
Table : Note
Page -19-
TP2
Important : Dans le répertoire Bac2024 situé sur la racine du disque C : de votre poste, créez un dossier de
travail portant votre numéro d’inscription (6 chiffres) et dans lequel vous devez enregistrer, au fur et à mesure,
tous les fichiers solutions de ce sujet.
Une société de gestion de vente de billets des concerts gère une base de données décrite par le schéma relationnel
suivant :
Concert (Id-Concert, Date, Lieu)
Billet (Id-Billet, Catégorie, Prix)
Vente (Id-Concert, Id-Billet, Mode-paiement)
1) Lancer le logiciel de création de base de données disponible et créer la BD « Gestion_Concert » sous le dossier
"C:\Bac 2024"
2) Créer les tables de la BD ainsi que les relations qui les relient.
3) Remplir les tables par les données suivantes :
Billet : Table Vente : Table
Concert : table
Requête1 pour afficher la date et le lieu du concert correspondant au billet vendue « BC114 » ?
Requête2 pour afficher la catégorie et le prix des billets vendus au comptant ?
Page -20-
TP3
Important : Dans le répertoire Bac2024 situé sur la racine du disque C : de votre poste, créez un dossier de
travail portant votre numéro d’inscription (6 chiffres) et dans lequel vous devez enregistrer, au fur et à mesure,
tous les fichiers solutions de ce sujet.
Afin de gérer le stockage des céréales collectées dans des silos, on se propose d’utiliser la base de données
intitulée "Gestion_Cereale" décrite par le schéma textuel simplifié suivant :
Cereale (CodeC, NomC, Prix)
Silo (CodeS, Nom, Adresse, Capacite)
Collecte (CodeC#, CodeS#, DateC, Quantite)
Soit la description des colonnes des tables de la base de données "Gestion_Cereale":
Nom Description Type Taille Format Contrainte
CodeC Le code d’une céréale Texte court 4 Non vide
NomC Le nom d’une céréale Texte court 30 Non vide
Le prix d’un Quintal d’une Nombre général (3
Supérieur à
Prix céréale en Dinar Numérique Réel chiffres après la
zéro
virgule)
CodeS Le code d’un silo Texte court 4 Non vide
Nom Le nom d’un silo Texte court 30 Non vide
Adresse L’adresse d’un silo Texte court 50
La capacité maximale de Entier Supérieure à
Capacite Numérique
stockage d’un silo en Quintal. long zéro
DateC La date d’une collecte Date/Heure Date abrégé Non vide
La quantité, en Quintal, livrée
Supérieure à
Quantite à un silo à une date bien Numérique Entier
zéro
déterminée
Page -21-
Page -22-
Atelier Théorique N°1
Afin de gérer les emprunts des DVD de jeux, un jeune informaticien a crée une base de données « gestion_emprunt »
dont les tables sont illustrés par la figure suivante :
Question 5 : que signifie le symbole reliant les champs « code_client » des tables « client » et
« emprunt » ?
Réponse 5 : ……………………………………………………………………………………
Déduire à partir de la figure donnée, le schéma de la base de données « gestion_emprunt » :
Client (…………………………………………………………….)
DVD (………………………………………………………………)
Emprunt(……………………………………………………………)
1. Lancer le logiciel de création de base de données disponible.
2. Créer la base de données « Gestion d’emprunt »
3. Créer les 3 tables présentées ci-dessus.
4. Etablir les différentes relations entre les différentes tables.
5. Remplir les tables par les données suivantes :
CLIENT
EMPRUNT DVD
Code_client Code_DVD Date_Emprunt Date_retour Code_DVD Titre Catégorie Prix-emprunt
1 1000 01/03/2009 03/03/2009 1000 Science fiction A 2
2 1001 06/04/2010 09/04/2010 1001 action B 1.5
2 1000 05/05/2009 10/05/2009 1002 documentaire C 4
Page -23-
6-Créer les requêtes suivantes et remplir la grille suivante
Grille de création de la requête rôle résultat
Type : ………………………………. Afficher les nom et
Champ : prénoms des client
Table : qui habite à « Tunis »
Tri : trié par ordre
Afficher : décroissant suivant le
Critères nom
Ou :
Page -24-
Atelier Théorique N°2
Soit la base de donnée suivante qui représente les articles commercialisés par une entreprise et leur répartition
entre les différents dépôts :
Article(code_article,nom_article,poidsunitaire)
Dépôt(num_dépôt,ville_dépôt)
Dépôt_article(code_article,num_dépôt,quantité)
Lors de la création de la base de données, le responsable de cette tâche a effectué les erreurs représentées ci-
dessous. On vous demande de les identifier.
a. La première erreur détectée est illustrée comme suit :
Identification de l’erreur :
………………………………………………………………………………………………………………………………………………
b. Le responsable a rempli la table article ainsi que la table dépôt comme suit :
Lors du remplissage de la table dépôt_article une deuxième erreur s’est déclenchée. En voici une illustration :
Identification de l’erreur :
…………………………………………………………………………………………………………………………………………………………
Compléter le tableau ci-dessous pour répondre à la requête qui permet d’afficher les articles (nom et quantité)
existant dans le dépôt de sfax.
Type de la requête :………………………..
Champ :
Table :
Tri :
Afficher :
Critères
Ou :
c/ on veut remplacer la quantité de l’article A1 dans le dépôt 2 par 50.
Type de la requête : ………………………..
Page -25-
Champ :
Table :
Mise à jour
Critères
Ou :
Page -26-
Atelier Théorique N°3
Pour gérer la consommation d’électricités des appareils des différents propriétaires on se propose d’exploiter
la base de données simplifie intitulé « Gestion_Appareil » suivante :
Page -27-
Pour attribuer seulement l’une des valeurs (T01,T02 et T03) au champ ‘’code_type’’ de la table
‘’appareil’’ on doit disposer l’option
Valeur par defaut Null interdit Valide si
Page -28-
Type : ………………………….. Augmenter la période de 5% pour tous les appareils de
Champ : type « informatique »
Table :
………………..
Critères
Ou :
Page -29-
Atelier Théorique N°4
Afin de gérer les comptes des clients d’une agence bancaire, on se propose de présenter la base de
données simplifiée « Gestion Banque » décrite par les tables et les relations suivantes :
Page -30-
5. Un nouveau client vient d’ouvrir un compte auprès de l’agence bancaire, après la saisie du champ
numéro da la carte d’identité nationale (CIN) composé de 8 chiffres et portant la valeur 05104024.
Que doit être le type du champ (CIN) pour chacun des cas suivants :
Si la valeur affichée est 05104024 ?..............................................................................
Si la valeur affichée est 5104024 ? ..................................................................................
6. Compléter les tableaux ci-dessous pour répondre aux requêtes suivantes, en précisant leurs
types :
a) Afficher un extrait d’un Numcompte donné contenant la liste des ropérations (NumOper,
Dateoper et Montant) effectuées pendant le mois de Mars 2017.
Type de la requête : ………………………………………………………………………..
b) Afficher la liste des clients (NumCompte, NomPrénom, téléphone et solde) titulaire de comptes
ayant des soldes négatifs.
Type de la requête : ………………………………………………………………………..
Page -31-
Atelier Théorique N°5
Afinde gérer les locations des robes, le responsable du service informatique de l’espace Bella propose la base
de données simplifiée intitulée "Gestion_Location"définie par le schéma textuel suivant :
Client (CIN, NomPrenom, DateNais, Adresse, Tel)
TypeRobe (CodeType, Designation)
Robe (CodeRobe, Description, Couleur, CodeType#, Prix)
Location (CIN#, CodeRobe#, DateLocation, DateRetour)
Les données de la table "Client" sont représentées comme suit :
Table : Client
CIN NomPrenom DateNais Adresse Tel
19458833 Souhir Touzri 29/02/2000 4, Rue d’Alger (+216) 44222333
01245888 Mehdi Beji 20/09/1945 17, Rue 14 Janvier (+216) 20304050
12812855 Abla Bkalti 15/10/1996 21, Route Gabes (+216) 21121314
27755144 Adnen Mestiri 04/09/2002 Im 9, Apt 6. Place Pasteur (+216) 99887766
05528077 Sofien Nabli 24/01/1973 Place de l’indépendance (+216) 98877665
1) Pour chacun des champs de la table "Client", encadrer le type approprié à partir de la liste indiquée
dans la colonne "Type de données" du tableau suivant :
Nom du champ Type de données
c. Pour afficher le code et la description des robes dont le code type est "T2".
Nom de la requête : …………………………….……………………………………………………………………………………………
Type de la requête : …………………………….……………………………………………………………………………………………
d. Pour afficher la liste des prix et les désignations des robes pour une couleur donnée.
Nom de la requête : …………………………….……………………………………………………………………………………………
Type de la requête : …………………………….……………………………………………………………………………………………
5) Compléter la grille de créationde larequête R5 suivante :
R5: Affiche les informations (NomPrenom, Description, Couleur, Prix, DateLocation,DateRetour)
relatives aux clients ayant loué des robes en 2021.
Champs :
Table:
Tri :
Afficher:
Page -33-
Critères:
Ou:
Page -34-
Partie II : A n a l y s e d e d o n n é e s a v e c Pandas
I. Introduction
Pour analyser les données en Python, on utilise la bibliothèque Pandas. Cette bibliothèque
doit être initialement importée. Puis, les données à analyser sont initialement stockées
dans un DataFrame (un tableau de données). Pandas offre diverses fonctionnalités pour :
Colonne d’indice 0
Colonnes
Page -35-
III. Chargement des données dans un DataFrame
A. Création d'un DataFrame
Pour créer un DataFrame on peut utiliser cette méthode :
Id_DataFrame=pd.DataFrame({
"id_colonne1": [valeur1,…,Valeurn],
…,
"id_colonneN": [valeur1,…,valeurn]
})
Exemple :
On demande de créer un DataFrame avec le contenu du tableau suivant :
ville cotiere population
Solution :
import pandas
df = pandas.DataFrame({'ville':['kef','sousse','beja'],'Cotiere':['False','True','False'],
'population':[243156,439243,303032]})
#Ou bien
df= pandas.DataFrame()
df['pays']=[ 'kef','sousse', 'beja']
df['cotiere']=[ 'False', 'True', 'False']
df['population']=[ 243156, 439243, 303032]
print(df)
Remarque : Lorsqu’une colonne contient un texte on doit mette chaque valeur entre deux côtes.
B. Chargement de données dans un DataFrame
Pour charger le contenu d'un fichier on utilise l’une des méthodes suivantes (selon le type de fichier (xlsx,
csv ou txt)) :
i. Fichier Excel(.xls/.xlsx)
Id_Dataframe=pandas.read_excel("Chemin / Nom_fichier.xls","Nom_Feuille")
Rq : chemin est supprimé lorsque le fichier est enregistré dans le même dossier que le fichier .py
Exemple 1
df= pd.read_excel("absence.xlsx", "Feuil1")
print(df)
Page -36-
iii. Fichier CSV(.csv)
Id_DataFrame = pd.read_csv("Chemin/ Nom_fichier.csv", sep=";")
Exemple
df= pd.read_csv("absence.csv", sep=";")
print(df)
Remarque
Lors d’exportation d’un tableau ou d'une requête Access à un fichier CSV ou txt on doit :
o Choisir le séparateur décimal, par exemple le symbole point (".")
o Choisir le séparateur des champs, par exemple la virgule (‘,’) ou bien le point-virgule (‘;’)
o Sélectionner l'encodage des caractères du fichier texte ou CSV. Il est conseillé d'utiliser l'encodage utf-8, par
défaut, car il supporte tous les caractères.
Lors de l'exportation au format CSV on préfère utiliser la virgule comme séparateur de champs, le point
comme séparateur décimal, sans oublier de cocher l'option: inclure les noms des champs sur la première
ligne.
IV. Informations d’un DataFrame
1. Dimensions d'un DataFrame
Pour afficher les dimensions d’un DataFrame on écrit :
print(id_DataFrame.shape)
Exemple
print(df.shape)
Page -37-
4. Statistiques descriptives
Pour afficher un résumé rapide (des statistiques descriptives) d’un DataFrame on écrit :
print(id_DtaFrame.describe())
Exemple
print(df.describe())
2. Suppression de lignes
Pour supprimer une ou plusieurs lignes on utilise l'instruction suivante :
Id_DataFrame=id_DataFrame.drop([indice_ligne])
Exemple1
Supprimer la deuxième ligne du DataFrame.
Page -38-
df=df.drop([1])
print(df) # pour vérifier le changement
3. Suppression de colonnes
Pour supprimer une ou plusieurs lignes on utilise la formule suivante :
Id_DataFrame=Id_DataFrame.drop([‘Nom_Colonne1’,…,’Nom_ColonneN’], axis=1)
Exemple1
Supprimer la colonne Nom du DataFrame.
df=df.drop(["Nom"], axis=1)
print(df)
4. Ajout de colonnes
Pour ajouter une colonne à un DataFrame on écrit :
Id_DataFrame["id_Colonne"]=[liste des valeurs]
Exemple
Ajouter une colonne Prime contenant les valeurs consécutives suivantes 0,120,0,150,200,120
df[‘Prime’]=[0,120,0,150,200,120]
print(df) # pour afficher DataFrame après modification
Page -39-
Exemple
Ajouter une ligne à la fin du tableau contenant les valeurs consécutives suivantes 'E006'
,'ayari','mohamed','D',0,7
df.loc[5]=['E006' ,'ayari','mohamed','D',0,7]
7. Tri
A. Tri par label
On peut trier les données d’un DataFrame selon le label (index des lignes) de ses lignes :
DataFrame_Trié=id_DataFrame.sort_index()
Exemple
Trier le DataFrame df selon l’indexation des lignes (le label).
df_tri =df.sort_index()
print(df_tri)
Remarque
La fonction sort_values(…) accepte deux paramètres importants :
by : pour indiquer les noms des colonnes qui seront triées.
ascending : pour indiquer l'ordre dans lequel les colonnes mentionnées dans le paramètre précédent sont triées.
o True : En ordre croissant (du plus petit au plus grand) ;
o False : En ordre décroissant (du plus grand au le plus petit) ;
Exemple
Page -40-
Trier le DataFrame par ordre croissant de la colonne Prénom.
df_Tri=df.sort_values(by=[" Prénom "],ascending=True)
print(df_Tri)
Remarque : les fonctions head() et tail() sans paramètre affichent respectivement les 5 premières et les 5
dernières lignes du DataFrame.
7. Affichage d'un intervalle de valeurs d’une colonne
Pour afficher le contenu d’une colonne entre position initiale et une position finale-1 on utilise la formule
suivante :
print(id_DataFrame.id_colonne[position_intiale : position_fianle])
Exemple
Afficher le contenu de la colonne Grade entre les indices 0 et 2
print(df.Grade[0:3]) ou bien print(df["Grade"][0:3])
Page -43-
Afficher la somme des NJ Absence
print (df[‘Code’].count())
IX. Graphiques
Pour créer un graphique on doit :
Charger la bibliothèque matplotlib
import matplotlib.pyplot as plt
Générer le graphique à l'aide d'une des fonctions suivantes :
# Graphique en barres
df.plot.bar(
x="colonne_Abscisse",y="Nom_colonne_Ordonnée",
title="Titre_Graphique", color="couleur_Graphique"
)
# Graphique en courbe
df.plot.line(
x="colonne_Abscisse",y="Nom_colonne_Ordonnée",
title="Titre_Graphique", color="couleur_Graphique"
)
Afficher le graphique
plt.show()
1. Graphique à barres
Pour représenter graphiquement en barre la colonne "Nom_colonne_ordonnée" en fonction de
"Nom_colonne_Abscisse" :
df.plot.bar(
x="Nom_colonne_Abscisse",y="Nom_colonne_Ordonnée",
title="Titre_Graphique", color="couleur_Graphique")
plt.show()
Page -44-
Exemple
Tracer un graphique de type barre de couleur rose et titre absence représentant les NJ Absence par
Code
import matplotlib.pyplot as plt
df.plot.bar(x='Code',y='NJ Absence', color='pink',title= ‘absence des employes’)
plt.show()
2.Graphique en courbe
Pour représenter graphiquement en courbe la colonne "Nom_colonne_ordonnée" en fonction de
"Nom_colonne_Abscisse" :
df.plot.line(
x="Nom_colonne_Abscisse",y="Nom_colonne_Ordonnée",
title="Titre_Graphique",color="couleur_Graphique")
plt.show()
Exemple
Tracer un graphique de type courbe de couleur rouge et titre absence représentant les NJ Absence
par Code_Empl
importmatplotlib.pyplot as plt
df.plot.line(x='Code',y='NJ Absence', color='red', title='absence des employes')
plt.show()
Page -45-
Atelier Théorique N°1
Le responsable informatique de l’hôtel veut gérer les réservations effectué pendant la saison de l’été, pour
cela, il a exporté la table Réservation dans un fichierˮRéservation.csvˮsitué sousD:/.(en utilisant un point-
virgule en séparateur de champs et point en séparateur décimal).
Pour pouvoir analyser les données et prendre des décisions, il a utilisé la bibliothèque« Pandas » du langage
de programmation « Python ».
1) Ecrire le script nécessaire qui permet d’importer le fichier « Réservation.csv » dans un DataFrame nommé
« res » puis l’afficher.
…………………………………………………………………………………………………………………
…………
Apporter les modifications nécessaires à la commande proposée pour effectuer le changement du nom de
colonne. ……………………………………………………………………………
Le script suivant: resultat=res.sort_values(by=['Montant'], ascending=True)
print(resultat)
Permet de trier le DataFrame resultat par ordre croissant selon la colonne Montant
Permet de trier le DataFrame res par ordre croissant selon la colonne Montant
Permet de trier le DataFrame resultat par ordre décroissant selon la colonne Montant
7) Compléter le script pour créer le graphique suivant :
Page -46-
import matplotlib.pyplot as plt
res.plot.…………(x='……………………',y='…………………',
color='red', title='Montant des réservations')
plt.show()
Page -47-
Atelier Theorique N°2
Afin d’avoir une idée claire sur les locations des robes réalisées pendant l’année 2021, le responsable du
service informatique de l’espace Bella a exporté le résultat de la requête "R5" dans le fichier "R5.csv" situé à
la racine C. Pour analyser les données exportées, on utilise la bibliothèque Pandas du langage de
programmation Python.
1. Parmi les propositions ci-dessous, encercler le numéro du script à écrire afin d’importer le contenu du
fichier "R5.csv" dans un DataFrame nommé "resultat".
2. Afin d’afficher des informations sur le DataFrame "resultat", compléter le tableau ci-dessous en associant
à chaque numéro de méthode la lettre correspondante au type d’affichage.
…………………………………………………………………………………………………………
…………………………………………………
…………………………………………………………………………………………………………
…………………………………………………
…………………………………………………………………………………………………………
……………………………………………………
5. Lors de l’exécution d’un script de génération d’un graphique, l’erreur suivante s’affiche :
Page -48-
a. Compléter le script ci-dessous par l’une des commandes suivantes pour éviter l’affichage de cette
erreur.
Liste des commandes :
import pandas
import pandas as plt
import matplotlib.pyplot as plt
import matplotlib.pyplot as pd
Script à corriger :
b. Soit les trois graphiques ci-dessous (1, 2 et 3), donner le numéro correspondant au graphique affiché
Page -49-
TP2
1. Ouvrir la base de donnée ‘’gestion_logiciel’’ de votre dossier dossier.
2. Exporter dans ’C:/bac2024’’ et sous le nom de "logiciel", le contenu de la table "logiciel" au format
csv (point-virgule en séparateur de champs, point en séparateur décimal, conserver le numéro des lignes).
4. En se référant à l’annexe de la page 2, choisir les méthodes adéquates, de la bibliothèque Pandas, pour
écrire le script "votrenomprenom.py" et l’enregistrer sous le dossier bac2024 du C : qui permet de/d’:
a) Charger la bibliothèque pandas
…………………………………………………………………………………………
b) Importer le contenu de la table intitulée "logiciel.csv" et le stocker dans un DataFrame qu’on
nommera "logiciel",
…………………………………………………………………………………………
c) Afficher le prix du 4 ème logiciel.
…………………………………………………………………………………………
d) Supprimer la ligne du logiciel « Marketing ».
…………………………………………………………………………………………
e) Afficher le contenu de la colonne « libelle » entre la position d’indice 2 et la position d’indice 6.
…………………………………………………………………………………………
f) Renommer le champ « ident » par « id».
…………………………………………………………………………………………
g) Afficher la liste des logiciels qui sont de categorie Programmation.
…………………………………………………………………………………………
Page -51-
TP3
À l’aide de l’environnement de développement pour le langage Python disponible :
1) Créer un script et l’enregistrer sous le nom "Sportif.py" dans votre dossier de travail (C:/bac2024).
2) En se référant à l’annexe, choisir les méthodes adéquates, de la bibliothèque Pandas, pour écrire le script
" Sportif.py " qui permet :
a) D’importer le contenu du fichier "Sportif.xlsx " et le stocker dans un DataFrame à nommer "Spr",
b) D’afficher les dimensions relatives au DataFrame "Spr " ainsi que les 2 premières lignes,
c) De calculer et afficher le nombre des Sportifs,
d) De remplacer la colonne Genre, dans le DataFrame "Spr", par la colonne Sexe.
e) Ajouter à la DataFrame"Spr",la colonne Score qui contient les données suivante :
12.5 , 14.75 , 11.25 , 18.00, 10.33 , 12.69
f) D’afficher les informations relatives aux Sportifs dont le score>= à 12.5
g) D’afficher les informations relatives aux Sportifs dont le prénom égale à Asma ou les sportifs
Homme
h) Modifier le contenu de la cellule dont la 3ème ligne ligne et nom de colonne = Prénom en Ahmed.
i) Modifier les données de la ligne 0 par la liste de nouvelles valeurs :
[S1 , ‘Maghrebi’ , ‘Aya’ , ‘F’ , ‘30/06/2003’,15.24]
j) De trier le DataFrame "Spr " dans un nouveau DataFrame nommé " Spr2" selon le score dans l’ordre
croissant. Afficher le nouveau DataFrame,
k) De générer puis afficher, à partir du DataFrame "spr", un graphique en lignes du couleur Rouge
représentant, pour chaque prénom, le score correspondant. Ce graphique a pour titre « Eco3 »
Page -52-
TP4
Important :
Dans le répertoire "C:/BAC2024", créez un dossier de travail portant votre nom & prénom dans lequel vous
devez enregistrer tous les fichiers solution de ce sujet.
Afin d’encourager ses joueurs, un club sportif de natation enregistre les informations relatives aux
rémunérations symboliques dans la base de données intitulée "Gestion_Equipe" décrite par le schéma
simplifié suivant :
Joueur (NumLicence, NomPrénom, CodeEquipe#)
Equipe (CodeEquipe, NomEquipe)
Questions :
I/ A l'aide du logiciel de gestion de base de données disponible :
1) Créer, dans votre dossier de travail, la base de données "Gestion_ Equipe". (1 pt)
2) Créer les tables et les relations de cette base de données. (3 pt)
3) Remplir les tables par les données suivantes : (2 pt)
Page -53-
TP5
Important : Dans le répertoire Bac2024 situé sur la racine du disque C : de votre poste, créez un dossier
de travail portant votre nometprenom et dans lequel vous devez enregistrer, au fur et à mesure, tous les
fichiers solutions de ce sujet.
Pour gérer ses activités, un club artistique exploite la base de données : « Gestion_Club » décrite par le
schéma textuel simplifié suivant :
Activité (CodeAct, libAct, PrixAct)
Coach (CodeCo, Nom, Prénom, tel)
Séance (CodeAct#,CodeCo#, DateSe, HeureDeb, HeureFin)
d) de modifier le prixAct de 3ième ligne dans le DataFramme «Activité», par 12.500 au lieu de 10.000
e) d’afficher les informations relatives aux activités dont les prixActs est supérieurs à 12.000
f) de trier le DataFrame «Activite» dans un nouveau Dataframe «Activite_Tri» selon les prixActs en ordre
décroissant. Afficher le nouveau Dataframe.
g) d’afficher la deuxième et la quatrième ligne du Dataframe.
h) de supprimer la 2ième ligne du Dataframe. Afficher le Dataframe «Activite».
i) de modifier le nom de la colonne prixActs par prix. Afficher le Dataframe «Activite».
j) de calculer et afficher la moyenne des prix des activités
k) de calculer et afficher le nombre des activités
l) de générer puis afficher, à partir du Dataframe «Activite», un graphe linéaire rouge représentant pour
chaque LibAct, le prix d’activité m) de générer puis afficher, à partir du Dataframe «Activite», un graphe
à barres bleu représentant pour chaque LibAct, le prix d’activité
ANNEXE
Les méthodes à utiliser avec la bibliothèque Pandas
Catégorie Syntaxe
Importation d’un Id_DataFrame = pandas.read_excel ("Chemin/Nom_Fichier.xlsx", "Nom_Feuille")
DataFrame Id_DataFrame = pandas.read_csv("Chemin/Nom_Fichier.extension", sep = "séparateur")
print(Id_DataFrame.shape)
print(Id_DataFrame.size)
print(Id_DataFrame.info())
Manipulation print(Id_DataFrame.describe())
d’un DataFrame print(Id_DataFrame.columns)
Id_DataFrame=Id_DataFrame.rename(columns = {"colonne1":"nouveau_nom_colonne1", …,"colonneN":"nouveau_nom_colonneN"}) puis print(Id_DataFrame)
Id_DataFrame=Id_DataFrame.drop([Indice_Ligne]) puis print(Id_DataFrame)
Id_DataFrame=Id_DataFrame.drop(["Nom_Colonne1",…,"Nom_ColonneN"]) puis print(Id_DataFrame)
print(Id_DataFrame)
print(Id_DataFrame. Nom_colonne) ou bien print(Id_DataFrame["Nom_colonne"])
print(Id_DataFrame.head(n))
print(Id_DataFrame.tail(n))
Affichage et print(Id_DataFrame.Nom_colonne[Position_Initiale:Position_Finale])
modification des print(Id_DataFrame.iloc[Indice_Ligne])
données d’un print(Id_DataFrame.iloc[Indice_Ligne,Indice_Colonne])
DataFrame Id_DataFrame.loc[N° ligne,"Nom_colonne"]=Valeur puis print(Id_DataFrame)
Id_DataFrame.loc[N° ligne]=[Liste_Valeur] puis print(Id_DataFrame)
Id_DataFrame["Nom_colonne "]=valeur puis print(Id_DataFrame)
print(Id_DataFrame[Id_DataFrame["Nom_Colonne"] Op_Comparaison valeur])
print(Id_DataFrame[(Id_DataFrame["Nom_Colonne"] Op_Comp Valeur) Op_Logique (Id_DataFrame["Nom_Colonne"] Op_Comp Valeur)])
Les fonctions
print(Id_DataFrame["Nom_Colonne"].nomfonction()) avec nomfonction peut être mean - min- max - sum - count
statistiques
DataFrame_Tri = Id_DataFrame.sort_index() puis print(Id_DataFrame_Trie)
Tri des éléments
DataFrame_Tri = Id_DataFrame.sort_index(axis = 1) puis print(Id_DataFrame_Trie)
d’un DataFrame
DataFrame_Tri = Id_DataFrame.sort_values(by = ["Nom_Colonne"] ,ascending = True/False) puis print(Id_DataFrame_Trie)
import matplotlib.pyplot as alias_matplotlib
Création d’un Id_DataFrame.plot.bar(x="Nom_Colonne_Abscisse", y="Nom_Colonne_Ordonne", title="Titre_Graphique", color="couleur_Graphique")
graphique Id_DataFrame.plot.line(x="Nom_Colonne_Abscisse", y="Nom_Colonne_Ordonne", title="Titre_Graphique",color="couleur_Graphique")
alias_matplotlib.show()
Page -56 -
Page -57 -