Vous êtes sur la page 1sur 35

Crefoc Tunis1

5-6 janvier 2022


Important :
 Dans le répertoire « FormationBac2023 » situé sur la racine du disque C de votre ordinateur, 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.
 Toutes les ressources à utiliser se trouvent dans le répertoire « Ressources » situé sur la racine du disque C.
 Copiez le fichier « Séance1.rar » situé dans « C:\Ressources » dans votre dossier de travail et extrayez son contenu,
dans ce même dossier, en utilisant le mot de passe « 123456 ».

L’association « Faune et Flore » veut améliorer la gestion des visites aux différents parcs nationaux afin
d’assurer la découverte des espèces naturelles (animale et végétale). L’informaticien responsable de ce projet au
sein de cette association propose d’utiliser la base de données intitulée « Gestion_Parc » décrite par le schéma
textuel suivant :

Ville ( CodeVille , NomVille)


Parc ( CodeParc , NomParc , AnneeCreation , Superfice , CodeVille# )
Espece (CodeEspece , NomEspece , Protection )
Parc_Espece ( CodeParc# , CodeEspece# )
Visite ( DateVisite , CodeParc# , NbParticipants , Frais )
La description des colonnes des tables de cette base de données est la suivante :
Nom Description Type Taille Format Contrainte
CodeVille Le code de la ville Texte court 2 Null interdit
NomVille Le nom de la ville Texte court 50 Null interdit
CodeParc Le code du parc Texte court 4 Null interdit
NomParc Le nom du parc Texte court 50 Null interdit
AnneeCreation L’année de création du parc Numérique Entier >0
Entier
Superfice La superficie du parc en hectare Numérique >0
long
CodeEspece Le code de l'espèce Texte court 4 Null interdit
NomEspece Le nom de l'espèce Texte court 20 Null interdit
L'état de protection de l'espèce
Protection Oui/Non
(protégée/non protégée)
DateVisite La date de la visite Date/Heure Date abrégé Null interdit
NbParticipants Le nombre de participants à une visite Numérique Entier >0
Le frais total de participation à une 3 chiffres après la
Frais Numérique Réel >0
visite en Dinar virgule

N.B. : L’association ne peut programmer qu’une seule visite par jour à un parc donné. Toutefois, elle peut
programmer, pour la même journée, plusieurs visites à des parcs différents.
A) À l’aide du logiciel de gestion de base de données disponible :
1) Ouvrir la base de données, intitulée « Gestion_Parc » située dans votre dossier de travail.
2) Créer dans cette base de données la table « Parc_Espece » décrite précédemment tout en respectant les
types et les propriétés cités dans la description ci-dessus.
3) Créer les relations entre les différentes tables de cette base de données.

Page 1 sur 5
4) Importer les données de table « Parc » à partir du fichier « Parc.csv » situé dans votre dossier de travail
(point-virgule en séparateur de champ, point en séparateur décimal, page de codes : Unicode (UTF-8) et
sans les noms des champs sur la première ligne).
5) Importer le fichiers « Visite.csv » situé dans votre dossier de travail dans une nouvelle table à nommer
« VisiteImport » (point-virgule en séparateur de champ, point en séparateur décimal, guillemet (double
quottes) en délimiteur de texte, page de codes : Unicode (UTF-8) et sans les noms des champs sur la
première ligne).
6) Remplir la table « Parc_Espece » par les données représentées dans le tableau suivant :
Parc_Espece
CodeParc CodeEspece
P001 FL01
P003 FL01
P003 FN01
P003 FN02
P004 FL02
P017 FN06
P017 FN08

7) Créer les requêtes suivantes :


R1 : Afficher les noms, les noms des villes et les superficies des parcs.
R2 : Afficher les noms des espèces protégées du parc « Chaâmbi ».
R3 : Ajouter les données de la table « VisiteImport » à la table « Visite ».
R4 : Afficher la liste des visites réalisées pendant le mois de mars de l’année 2022 (DateVisite ,
NomParc , NbParticipants , Frais) triée par ordre croissant de la date de visite.
R5 : Supprimer de la table "Visite", les visites réalisées dans une date donnée.
R6 : Modifier par « Oui » le champ « Protection », les espèces naturelles qui existent dans le parc
« Les îles de Zembra-Zembretta ».
R7 : Afficher pour chaque parc le code, le nom, l’année de création, la superficie, le code de la ville, le
nom de la ville, le nombre total de participants et le total des frais de participation.
8) Exporter, dans votre dossier de travail et sous le nom « Statistique_parcs.csv », le résultat de la requête
"R7" au format csv (Point-virgule en séparateur de champs, point en séparateur décimal, page de codes
: Unicode (UTF-8) et inclure les noms des champs sur la première ligne).
B) À l’aide de l’environnement de développement disponible et en exploitant la bibliothèque Pandas :
 Créer un fichier et l’enregistrer sous le nom « statistique » dans votre dossier de travail.
 Choisir les méthodes et les propriétés adéquates, à partir de l’annexe (page 4 et 5), pour écrire dans le
fichier créé les scripts permettant :
1) Importer le contenu du fichier « Statistique2023.csv » et le stocker dans un DataFrame à nommer
« parcs ».
2) Afficher le contenu de ce DataFrame.
3) Afficher les dimensions de ce DataFrame.

Page 2 sur 5
4) Afficher les noms des colonnes de ce DataFrame.
5) Afficher les données de la première ligne de ce DataFrame.
6) Afficher les données de la dernière ligne de ce DataFrame.
7) Afficher les données qui existent entre la ligne N° 3 et la ligne N° 6 de ce DataFrame.
8) Afficher le nombre d’éléments de ce DataFrame.
9) Afficher les champs de ce DataFrame DataFrame ainsi que leurs types.

10) Supprimer la colonne qui présente le code de la ville dans ce DataFrame puis vérifier que la suppression
est effectuée avec succès.
11) Supprimer les deux premières lignes de ce DataFrame puis vérifier que la suppression est effectuée avec
succès.
12) Supprimer les doublons de ce DataFrame puis vérifier que la suppression est effectuée avec succès.
13) Supprimer les lignes vides de ce Dataframe puis vérifier que la suppression est effectuée avec succès.
14) Renommer les colonnes contenant le nombre total des participants et le total des frais de participation
respectivement par « Nbparticipants » et par « TotalFrais » puis vérifier que l’opération est effectuée
avec succès.
15) Afficher, à partir de ce Dataframe, les noms des parcs suivis du nombre total de participants et du total de
frais de participants.
16) Afficher, à partir de ce Dataframe, les huit premiers noms des parcs suivis du nombre total de participants
et du total de frais de participants
17) Calculer et afficher, pour tous les parcs le nombre total des participants.
18) Afficher les noms et les années de création des parcs situés dans le gouvernorat de « Jandouba ».
19) Afficher les noms et les années de création des parcs crées après 1990 et ayant une superficie supérieure
ou égale à 8000 hectares.
20) Trier le DataFrame « parcs » dans un nouveau DataFrame nommé « parcs_tri » selon l’ordre croissant
des années de création et l’ordre décroissant des superficies puis afficher le DataFrame trié.
21) Créer un nouveau DataFrame à nommer « parcs2 » qui contient les données ci-dessous puis vérifier que
l’opération est effectuée avec succès. :
CodeParc NomParc AnneeCreation Superficie NomVille Nbparticipants TotalFrais
P001 Bouhedma 1980 16448 Gafsa 120 3282
P002 Boukornine 1987 1939 Ben Arous 120 3155
22) Ajouter les données du DataFrame « parcs2 » à la fin du DataDrame « parcs ».
23) Calculer et afficher, pour chaque parc, la moyenne des frais dans une nouvelle colonne à nommer
« MoyenneFrais », sachant que :
MoyenneFrais = TotalFrais / Nbparticipants
24) Afficher les noms des parcs les plus visités.
25) Réaliser un graphique en lignes représentant le nombre des participants en fonction des noms des parcs.

Page 3 sur 5
Les méthodes et les propriétés utilisées avec la bibliothèque pandas
Catégorie Syntaxe
Création d’un
IdDataFrame = pandas.DataFrame ({"Id_Colonne1":["Val1",…,"ValN"],…, "Id_ColonneM":[Val1,…,ValN]})
DataFrame
Importation des
IdDataFrame = pandas.read_excel ("Chemin/ Nom_Fichier.extension", "Nom_Feuille")
données dans un
IdDataFrame = pandas.read_csv ("Chemin/Nom_Fichier.extension", sep = "séparateur")
DataFrame
 Affichage des dimensions d’un DataFrame : IdDataFrame.shape ou bien print (IdDataFrame.shape)
 Affichage du nombre d’éléments d’un DataFrame : IdDataFrame.size ou bien print (IdDataFrame.size)
 Affichage des informations concernant un DataFrame : IdDataFrame.info ( ) ou bien print ( IdDataFrame.info ( ) )
 Affichage du résumé rapide d’un DataFrame : IdDataFrame.describe ( ) ou bien print ( IdDataFrame.describe ( ) )
Manipulation  Affichage des noms des colonnes d’un DataFrame : IdDataFrame.columns ou bien print ( IdDataFrame.columns )
d’un DataFrame  Renommage des libellés d’une ou de plusieurs colonnes :
Resultat = IdDataFrame.rename (columns = {"NomColonne1": "NouveauNomColonne1", "NomColonne2": "NouveauNomColonne2", … })
 Suppression des lignes : Resultat = IdDataFrame.drop ( [ N° Ligne1, … , N° LigneN ] )
 Suppression de lignes consécutives : Resultat = IdDataFrame.drop ( IdDataFrame.index [ N° LigneInitial : N° LigneFinal ] )
 Suppression des colonnes : Resultat = IdDataFrame.drop ( columns = [ "NomColonne1",…,"NomColonneN" ] )
 Affichage du contenu d’un DataFrame : IdDataFrame ou bien print ( IdDataFrame )
 Affichage du contenu d’une colonne : IdDataFrame [ "NomColonne" ] ou bien print ( IdDataFrame [ "NomColonne" ] )
 Affichage du contenu de plusieurs colonnes :
Id_DataFrame [ ["Id_Colonne1","Id_Colonne2",…] ] ou bien print ( Id_DataFrame [ ["Id_Colonne1","Id_Colonne2",…] ] )
 Affichage du contenu d’une colonne entre une position initiale et une position finale – 1 :
Affichage des IdDataFrame ["NomColonne"] [ N° LigneInitial : N° LigneFinal ] ou bien print ( IdDataFrame ["NomColonne"] [ N° LigneInitial : N°
données d’un LigneFinal ])
DataFrame  Affichage du contenu d’une ligne : IdDataFrame.iloc [ N° Ligne ] ou bien print ( IdDataFrame.iloc [ N° Ligne ] )
 Affichage des n premières lignes d’un DataFrame : IdDataFrame.head ( n ) ou bien print ( IdDataFrame.head ( n ) )
 Affichage des n dernières lignes d’un DataFrame : IdDataFrame.tail ( n ) ou bien print ( IdDataFrame.tail ( n ) )
 Affichage du contenu des lignes entre une position initiale et une position finale – 1 :
IdDataFrame.iloc [ N° LigneInitial : N° LigneFinal ] ou bien print ( IdDataFrame.iloc [ N° LigneInitial : N° LigneFinal ] )
 Affichage du contenu d’une cellule : IdDataFrame.iloc [ N° Ligne , N° Colonne ] ou bien print ( IdDataFrame.iloc [ N° Ligne , N° Colonne ] )

Page 4 sur 5
Modification et  Modification du contenu d’une cellule d’un DataFrame : IdDataFrame.loc [ N° ligne , "NomColonne" ] = Valeur (ou formule)
ajout des  Modification des données d’une ligne d’un DataFrame : Id_DataFrame.loc [ N° ligne ] = [ Liste_Valeur ]
données d’un  Ajout d’une colonne dans un DataFrame : Id_DataFrame [ "Id_Colonne" ] = Valeur (ou formule)
DataFrame
 Supprimer les doublons d’un DataFrame : Resultat = Id_DataFrame.drop_duplicates ( )
Nettoyage d’un
 Supprimer toutes les lignes contenant des valeurs nulles : Resultat = Id_DataFrame.dropna ( )
DataFrame
 Supprimer toutes les colonnes contenant des valeurs nulles : Resultat = Id_DtaFrame.dropna ( axis = 1 )
Les fonctions
mean ( ) – min ( ) – max ( ) – sum ( ) – count ( )
statistiques
 Affichage des données d’un DataFrame selon une condition
IdDataFrame [ IdDataFrame [ "NomColonne" ] OperateurComparaison Valeur ]
Les opérateurs de comparaison
== < <= > >= != isin
Affichage des  Affichage des données d’un DataFrame selon plusieurs conditions
données d’un IdDataFrame [( IdDataFrame ["NomColonne"] OperateurComp Valeur)
DataFrame selon OperateurLogique ( IdDataFrame ["NomColonne"] OperateurComp Valeur )]
une ou plusieurs
conditions Les opérateurs logiques
Opérateur Nomination Rôle
| OU logique Vérifie qu'une des conditions est réalisée
& ET logique Vérifie que toutes les conditions sont réalisées

Tri des éléments


DataFrame_Trié = IdDataFrame.sort_values ( by = [ "NomColonne1" ,"NomColonne2" , …] , ascending = [ True/False , True/False , … ] )
d’un DataFrame
 Création d’un graphique à barres
IdDataFrame.plot.bar (x = "NomColonneAbscisse", y = "NomColonneOrdonnée", title = "TitreGraphique", color = "CouleurGraphique")
Création d’un  Création d’un graphique en courbe
graphique IdDataFrame.plot.line (x = "NomColonneAbscisse", y = "NomColonneOrdonnée", title = "TitreGraphique", color = "CouleurGraphique")
 Affichage d’un graphique
alias_matplotlib.show ( )

Page 5 sur 5
Gestion & Analyse
des données
Formateur: MAKHZOUMI Abdelhalim Janvier 2023
Objectifs

 Gestion de données

 Analyse de données
Analyse de données (pandas)

Affichage des données


Affichage des données
Création d’un d’un DataFrame
d’un DataFrame
DataFrame
Modification et ajout selon une ou plusieurs
Importation des des données dans un conditions
données dans un DataFrame Tri des éléments d’un
DataFrame DataFrame
Nettoyage d’un
Manipulation DataFrame
Création d’un
d’un DataFrame
Utilisation des graphique
fonctions statistiques
1 Importer le contenu du fichier « Statistique2023.csv » et le
stocker dans un DataFrame à nommer « parcs ».

import pandas as pd
parcs=pd.read_csv("statistique2023.csv", sep=";")
2 Afficher le contenu de ce DataFrame

print(parcs)
3 Afficher les dimensions de ce DataFrame

print(parcs.shape)
4 Afficher les noms des colonnes de ce DataFrame

print(parcs. columns)
5 Afficher les données de la première ligne de ce
DataFrame.

print(parcs.head(1))
ou
print(parcs.iloc[0:1])
6 Afficher les données de la dernière ligne de ce
DataFrame

print(parcs.tail(1))
7 Afficher les données qui existent entre la ligne
N° 3 et la ligne N° 6 de ce DataFrame

print(parcs.iloc[3:7])
8 Afficher le nombre d’éléments de ce DataFrame

print(parcs.size)
9 Afficher les champs de ce DataFrame
DataFrame ainsi que leurs types

print(parcs.info())
Supprimer la colonne qui présente de code de la
ville dans ce DataFrame puis vérifier que la
suppression est effectuée avec succès

parcs=parcs.drop(columns=["CodeVille"])
print(parcs)())
Supprimer les deux premières lignes de ce
DataFrame puis vérifier que la suppression est
effectuée avec succès

parcs=parcs.drop(parcs.index[0:2])
ou
parcs=parcs.drop([0,1])
print(parcs)())
Supprimer les doublons de ce DataFrame puis
vérifier que la suppression est effectuée avec
succès

parcs=parcs.drop_duplicates()
print(parcs)
Supprimer les lignes vides de ce Dataframe puis
vérifier que la suppression est effectuée avec
succès

parcs=parcs.dropna()
print(parcs)
Renommer les colonnes contenant le nombre total des participants et
le total des frais de participation respectivement par «Nbparticipants
» et par « TotalFrais » puis vérifier que l’opération est effectuée avec
succès.

parcs=parcs.rename(columns={"SommeDeNb
Participants":"Nbparticipants","SommeDeFr
ais": "TotalFrais"})
print(parcs.columns)
Afficher, à partir de ce Dataframe, les noms des
parcs suivis du nombre total de participants et
du total de frais de participants

print(parcs[["NomParc","Nbparticipants","T
otalFrais"]])
Afficher, à partir de ce Dataframe, les huit premiers
noms des parcs suivis du nombre total de participants
et du total de frais de participants

print(parcs[["NomParc","Nbparticipants","T
otalFrais"]].head(8))
Calculer et afficher, pour tous les parcs le nombre
total des participants

print(parcs["Nbparticipants"].sum())
Afficher les noms et les années de création des parcs
situés dans le gouvernorat de « Jandouba »

print(parcs[parcs["NomVille"]=="Jandouba"]
[["NomParc","AnneeCreation"]])
Afficher les noms et les années de création des parcs
crées après 1990 et ayant une superficie supérieure ou
égale à 8000 hectares

print(parcs[(parcs["AnneeCreation"]>1990) &
(parcs["Superficie"]>=8000)][["NomParc","A
nneeCreation"]])
Trier le DataFrame « parcs » dans un nouveau DataFrame
nommé « parcs_tri » selon l’ordre croissant des années de
création et l’ordre décroissant des superficies puis afficher le
DataFrame trié.

parcs_tri=parcs.sort_values(by=["AnneeCreati
on","Superficie"] , ascending=[True,False])
print(parcs_tri)
Créer un nouveau DataFrame à nommer « parcs2 » qui contient
les données suivantes

parcs2=pd.DataFrame({"CodeParc":["P001","P002"],"
NomParc":["Bouhedma",
"Boukornine"],"AnneeCreation":[1980,1987],"Superfici
e":[16448,1939],"NomVille":["Gafsa","Ben
Arous"],"Nbparticipants":[120,120],"TotalFrais":[3282,
3155]})
print(parcs2)
Ajouter les données du DataFrame « parcs2 » à la fin du
DataDrame « parcs »

parcs.loc[16]=parcs2.iloc[0]
parcs.loc[17]=parcs2.iloc[1]
Calculer et afficher, pour chaque parc, la moyenne des frais dans
une nouvelle colonne à nommer « MoyenneFrais », sachant que :
MoyenneFrais = TotalFrais / Nbparticipants

parcs["MoyenneFrais"]=parcs["TotalFrais"]/parcs
["Nbparticipants"]
print(parcs["MoyenneFrais"])
Afficher les noms des parcs les plus visités

print(parcs[(parcs["Nbparticipants"]==parcs["Nbp
articipants"].max()) ]["NomParc"])
Réaliser un graphique à barres représentant le
nombre des participants en fonction des noms
des parcs

import matplotlib.pyplot as plt


parcs.plot.bar(x="NomParc", y="Nbparticipants",
title="Le nombre de participants par parc ",
color="blue")
plt.show()
Merci

Vous aimerez peut-être aussi