0% ont trouvé ce document utile (0 vote)
42 vues5 pages

6 Table de Données en Python

Le document décrit comment représenter et manipuler des données tabulaires en Python à l'aide de listes et de dictionnaires. Il présente des exemples de création, modification et affichage de tables, ainsi que des opérations comme le filtrage et le calcul de statistiques descriptives sur les données.

Transféré par

Iman Q
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
42 vues5 pages

6 Table de Données en Python

Le document décrit comment représenter et manipuler des données tabulaires en Python à l'aide de listes et de dictionnaires. Il présente des exemples de création, modification et affichage de tables, ainsi que des opérations comme le filtrage et le calcul de statistiques descriptives sur les données.

Transféré par

Iman Q
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

Sciences Numériques et Technologie

THEME 3: Les données structurées et leur traitement Table de données en Python

Comment représenter une table de données structurées en Python ?


Examinons, pour commencer, 2 structures de données particulières : les listes et les dictionnaires ...
Les listes
La structure de liste permet d'énumérer des éléments de types variés : les différents éléments sont placés entre 2 crochets,
séparés par des virgules ... Vous saisirez les commandes dans la console (SHELL) lorsque est noté IN : .

# exemple de liste à saisir dans l’éditeur


Cartes = ["as",9,"roi",10,"dame"]

IN : Cartes

OUT : ['as', 9, 'roi', 10, 'dame']

IN : type (Cartes)

OUT : list

Pour ajouter un élément à une liste on peut utiliser l'opérateur + :

IN : Cartes = Cartes + ["valet"]

IN : Cartes

OUT : ['as', 9, 'roi', 10, 'dame', 'valet']

Pour obtenir la longueur de la liste (son nombre d'éléments), on utilise la fonction len() :

IN : len(Cartes)

OUT : 6

Une liste est une structure ordonnée : chaque élément est repéré par son rang (ou index).
Pour accéder à un élément d'une liste, on utilise son index :

IN : Cartes[1]

OUT : 9

# vous remarquez que l'indexation commence à 0


# ainsi pour obtenir le premier élément de la liste (qui a pour rang 0) :
IN : Cartes[0]

OUT : 'as'

# ainsi, pour obtenir le dernier élément de la liste (le sixième qui a pour rang 5) :
IN : Cartes[len(Cartes) - 1]

OUT : 'valet'

Exercice : Quelle est la valeur de l'avant dernier élément de la liste Cartes ?

Exercice : Ajouter les éléments 7 et 8 à la liste Cartes:

1/5
Sciences Numériques et Technologie
THEME 3: Les données structurées et leur traitement Table de données en Python

Pour parcourir une liste ( pour accéder successivement à tous ses éléments) :

# affichons successivement tous les éléments de la liste dans l’éditeur


for carte in Cartes :
print(carte)

as
9
roi
10
dame
valet

Dans cette boucle for un peu particulière, la variable element a pris successivement toutes les valeurs des éléments de la liste
Cartes.
Les dictionnaires
Comme dans une liste, la structure de dictionnaire permet d'énumérer des éléments.
Mais ces éléments, non ordonnés, ne sont pas indexés par leur rang mais par une clé.
Les différents couples clé:valeur sont placés entre 2 accolades, séparés par des virgules ...

# exemple de dictionnaire
Dico = {'chien':'dog', 'chat':'cat', 'lapin':'rabbit'}
print(Dico)

{'chien': 'dog', 'chat': 'cat', 'lapin': 'rabbit'}

IN : type(Dico)

dict

Pour accéder à la valeur d'un élément d'un dictionnaire, on utilise sa clé, placée entre crochets :

# pour accéder à la valeur de l'élément de clé 'chat'


IN : Dico['chat']

'cat'

Pour ajouter un élément à un dictionnaire ...

IN : Dico['cheval'] = 'horse'
IN : Dico

{'chien': 'dog', 'chat': 'cat', 'lapin': 'rabbit', 'cheval': 'horse'}

... ou modifier la valeur d'un élément existant

IN : Dico['lapin'] = 'bunny'
IN : Dico

{'chien': 'dog', 'chat': 'cat', 'lapin': ‘bunny’, 'cheval': 'horse'}

Exercice : Quelle est la traduction anglaise du mot français "cheval" ?

Exercice : Ajouter d'autres entrées au dictionnaire Dico ...

2/5
Sciences Numériques et Technologie
THEME 3: Les données structurées et leur traitement Table de données en Python

Comment, avec ces 2 outils, représenter une table de données ?


Une table = une liste de dictionnaire
Prenons la petite table suivante (une liste fictive d'élèves) ...

Prénom Nom Genre Age


Alex TERIEUR M 15
Sophie FONFEC F 16
John DOEUF M 16
Lana NASSE F 17

Utilisons des dictionnaires pour représenter les entrées (les lignes de la table) : les descripteurs des
colonnes de la table constituent les clés du dictionnaire, les données en sont les valeurs ...

eleve1 = {'nom': 'TERIEUR', 'prénom': 'Alex', 'genre': 'M', 'age':15}


eleve2 = {'nom': 'FONFEC', 'prénom': 'Sophie', 'genre': 'F', 'age':16}
eleve3 = {'nom': 'DOEUF', 'prénom': 'John', 'genre': 'M', 'age':16}

... et constituons une liste de ces 3 entrées.

Eleves = [eleve1, eleve2, eleve3]

Essayons d'afficher le contenu de notre table eleves, de différentes manières ...

IN : Eleves

[{'nom': 'TERIEUR', 'prénom': 'Alex', 'genre': 'M', 'age': 15},


{'nom': 'FONFEC', 'prénom': 'Sophie', 'genre': 'F', 'age': 16},
{'nom': 'DOEUF', 'prénom': 'John', 'genre': 'M', 'age': 16}]

for eleve in Eleves :


print(eleve)

{'nom': 'TERIEUR', 'prénom': 'Alex', 'genre': 'M', 'age': 15}


{'nom': 'FONFEC', 'prénom': 'Sophie', 'genre': 'F', 'age': 16}
{'nom': 'DOEUF', 'prénom': 'John', 'genre': 'M', 'age': 16}

for eleve in Eleves :


print('Nom:', eleve['nom'], 'Prenom:', eleve['prénom'], 'Genre:', eleve['genre'], ' Age:', eleve['age'])

Nom: TERIEUR Prenom: Alex Genre: M Age: 15


Nom: FONFEC Prenom: Sophie Genre: F Age: 16
Nom: DOEUF Prenom: John Genre: M Age: 16

print('Nom Prénom Genre Age')


for eleve in Eleves :
print(eleve['nom'], eleve['prénom'], eleve['genre'], eleve['age'])

Nom Prénom Genre Age


TERIEUR Alex M 15
FONFEC Sophie F 16
DOEUF John M 16

Exercice : rajouter le 4ème élève à la table et affichez-la ...

# je crée un dictionnaire pour l'entrée "Lana Nasse" ...

# je rajoute cette entrée à la liste élèves ...

# j'affiche le contenu de la table modifiée ...

3/5
Sciences Numériques et Technologie
THEME 3: Les données structurées et leur traitement Table de données en Python
Quelques traitements de données ...
Commençons par importer une table plus importante ...
# Exécuter ces quelques lignes afin d'importer des données d'un fichier elev
es.csv dans une table eleves (il n’est pas indispensable d’en comprendre le détail)
import csv
Eleves = []
with open("eleves.csv", newline=' ') as fichier :
lecteur = csv.reader(fichier)
nl = 0
for ligne in lecteur :
print(ligne)
if nl == 0 :
entete=ligne
else :
Eleves.append({entete[0]:ligne[0],entete[1]:ligne[1],entete[2]:ligne[2],entete[3]:int(ligne[3])})
nl += 1

# Affichons son contenu


IN : Eleves

[{'Prenom': 'Alex', 'Nom': 'TERIEUR', 'Genre': 'M', 'Age': 17},


{'Prenom': 'Camille', 'Nom': 'ONETTE', 'Genre': 'F', 'Age': 16},
{'Prenom': 'Paco', 'Nom': 'TILLE', 'Genre': 'M', 'Age': 16},
{'Prenom': 'Sophie', 'Nom': 'FONFEC', 'Genre': 'F', 'Age': 16},
{'Prenom': 'Elie', 'Nom': 'COPTER', 'Genre': 'M', 'Age': 15},
{'Prenom': 'John', 'Nom': 'DOEUF', 'Genre': 'M', 'Age': 16},
{'Prenom': 'Lana', 'Nom': 'NASSE', 'Genre': 'F', 'Age': 17},
{'Prenom': 'Agathe', 'Nom': 'ZEBLOUSE', 'Genre': 'F', 'Age': 17},
{'Prenom': 'Djamal', 'Nom': 'DORMI', 'Genre': 'M', 'Age': 16},
{'Prenom': 'Edith', 'Nom': 'ORIAL', 'Genre': 'F', 'Age': 15},
{'Prenom': 'Hassan', 'Nom': 'CEHEF', 'Genre': 'M', 'Age': 16},
{'Prenom': 'Norma', 'Nom': 'LEMAN', 'Genre': 'F', 'Age': 16},
{'Prenom': 'Sarah', 'Nom': 'TATTINE', 'Genre': 'F', 'Age': 15}]
Filtrons ces données ...

# Rien que les filles


for eleve in Eleves :
if eleve['Genre'] == 'F' :
print(eleve['Nom'], ":", eleve['Age'], "ans")

ONETTE : 16 ans
FONFEC : 16 ans
NASSE : 17 ans
ZEBLOUSE : 17 ans
ORIAL : 15 ans
LEMAN : 16 ans
TATTINE : 15 ans

# Rien que les élèves de plus de 16 ans


for eleve in Eleves :
if eleve['Age'] > 16 :
print(eleve['Nom'], ":", eleve['Age'], "ans")

TERIEUR : 17 ans
NASSE : 17 ans
ZEBLOUSE : 17 ans

# Rien que les filles de plus de 16 ans


for eleve in Eleves :
if eleve['Age'] > 16 and eleve['Genre'] == 'F' :
print(eleve['Nom'], ":", eleve['Age'], "ans")

NASSE : 17 ans
ZEBLOUSE : 17 ans

Exercice : Lister les garçons de 16 ans et moins:


4/5
Sciences Numériques et Technologie
THEME 3: Les données structurées et leur traitement Table de données en Python

Réalisons quelques calculs ...

# Calcul de l'âge moyen


somme = 0
for eleve in Eleves :
somme += eleve['Age']
moyenne = somme / len(Eleves)
print("L'age moyen est de", moyenne, "an, calculé sur", len(Eleves), "élèves.")

L'age moyen est de 16.0 an, calculé sur 13 élèves.

# Calcul du ratio fille/garçon


nF = 0 # nombre de fille
nM = 0 # nombre de garçons
for eleve in Eleves :
if eleve['Genre'] == 'F' :
nF += 1
else :
nM += 1
rF = 100*nF/(nF+nM) # proportion de filles
rM = 100*nM/(nF+nM) # proportion de garçons
print("Proportion de fille :", rF, "% et de garçon :", rM, "%")

Proportion de fille : % et de garçon : %

# Répartition de fréquence des âges


ages = []
for eleve in Eleves :
ages += [eleve['Age']]
classes = [14, 15 , 16, 17, 18, 19, 20]
import matplotlib.pyplot as plt
plt.hist(ages, classes, rwidth=0.8)
plt.xlabel("age (ans)")
plt.ylabel("nombre d'élèves")
plt.show()

Exercice : Quel est l'âge moyen des filles ? Et celui des garçons ?

Exercice : Construire 2 sous-tables : celle des filles et celle des garçons ...

5/5

Vous aimerez peut-être aussi