Explications :
Ligne 1 : importation de la bibliothèque pandas (utilisée dans le traitement des données)
Ligne 2: création de la variable identite contenant les données contenues dans le fichier
personnes_virgule.csv
Ligne 3: affichage du contenu de la variable identite
Exécuter le code (s'il y a une erreur, il est nécessaire d'importer la bibliothèque Pandas (Outils Outils
installer d'un nouveau module 2 pandas ou 1pandas))
Il est possible de récupérer toutes les colonnes d'une même ligne en remplaçant
l'index_colonne par ":"
Remplacer la ligne 3 et exécuter le code
3 info=identite.loc[0,:]
Exo01 :
1) Modifiez le programme pour que la variable info contienne "12/06/1978"
2) Modifiez le programme pour que la variable info contienne toutes les dates de naissances
3) Modifiez le programme pour que la variable info contienne toutes les données de la ligne 2
NSI- Traitement de données TD
2) Traitement du fichier ville_virguleMAJ.csv
Enregistrer le fichier villes_virguleMAJ.csv dans votre répertoire de travail.
Dans Edupython, saisir le programme suivant et l'enregistrer dans le même répertoire que
le fichier ville_virguleMAJ.csv (sous le nom de traitement_villesCSV.py):
1 import pandas
2 infoVille=pandas.read_csv("villes_virguleMAJ.csv")
3 print(infoVille)
Vous allez voir que le tableau est coupé en 2 et mis l'un sous l'autre et il manque des données
remplacées par des "…" car il y a trop de données.
Certaines valeurs sont NaN (Not a Number) car il manque des données remplacées par la valeur NULL
a-Il est possible de noter un critère :
Remplacer la ligne 3 et exécuter le code
3 selec=infoVille.loc[infoVille["alt_min"]>1500]
4 print(selec)
Exo02 :
1) Analysez la réponse obtenue : qu'avez-vous obtenu ?
Remplacer la ligne 3 et exécuter le code
3 selec=infoVille.loc[infoVille["alt_min"]>1500,["dep","nom","alt_min"]]
Exo02 (suite):
2) Quelle modification apporte la nouvelle instruction ?
3) Modifiez le programme pour avoir les villes dont la densité d'habitants est supérieure à 600 hab/km² dans
un tableau avec 4 colonnes : le département, le nom, la densité de la population et l'altitude minimum.
Déterminez le nombre de villes qui correspond à ce critère (pour toutes les voir ajouter la ligne suivante avant le
print : pandas.set_option('display.max_rows', 999)
Exo03 :
1) Modifiez le programme pour avoir les villes qui ont une densité supérieure à 600 hab/km² et une
altitude minimum de 1500 m.
2) Modifiez le programme pour avoir les villes dont l'altitude minimum est de 1500 m ou dont la surface est
supérieure à 200 km².
c- Il est possible de faire des calculs :
Par exemple, pour calculer la moyenne, il suffit d'utiliser la méthode mean
Remplacer les lignes 3 et 4 et exécuter le code
3 moy_altmini=infoVille.loc[:,"alt_min"].mean()
4 print(moy_altmini)
Exo04 :
Modifiez le programme pour calculer le nombre moyen d'habitants dans les villes en France en 2012.
d- Il est possible de faire des calculs avec une condition :
Par exemple, pour calculer la moyenne des altitudes minimum supérieures à 1500 m de toutes les villes :
Remplacer les lignes 3 et 4 et exécuter le code
3 nb_habmoy=infoVille.loc[infoVille["alt_min"]>1500,"nb_hab_2012"].mean()
4 print(nb_habmoy)
NSI- Traitement de données TD
e- Il est possible de trier le tableau en fonction des valeurs d'un descripteur :
Il suffit d'utiliser la méthode sort_values pour trier par ordre croissant (et en ajoutant
ascending=False pour un ordre décroissant).
Remplacer les lignes 3 et 4 et exécuter le code
3 tri_surf=infoVille.sort_values(by=["surf"],ascending=False)
4 print(tri_surf)
Exo05 :
1) Analyser le programme ci-dessus pour trouver ce qu'il fait.
2) Modifiez le programme pour trouver la ville ayant l'altitude minimum la plus importante de France.
3) Modifiez le programme pour trouver la ville ayant l'altitude minimum la plus faible de France.
4) Modifiez le programme pour trouver la ville ayant la densité la plus forte de France en n'affichant
que 3 descripteurs : le département, la ville et la densité.
5) Modifiez le programme pour trouver la ville ayant la densité la plus forte de France pour les villes
ayant moins de 10 000 hab et ayant une surface supérieure à 50 km² en affichant 5 descripteurs : le
département, la ville, la surface, le nombre d'habitants et la densité.
Exo06 :
1) Que représente la carte réalisée ?
2) Affichez le code source de la carte. Quels sont les langages utilisés ?
3) A vous de représenter la carte que vous voulez à partir des données de villes_virguleMAJ.csv …
NSI- Traitement de données TD
Correction TD06 – Traitement de fichiers CSV avec Python
Exercice 1
1) info=identite.loc[2,'date_naissance']
2) info=identite.loc[:,'date_naissance']
3) info=identite.loc[2,:]
4) info=identite.loc[2,'date_naissance']
Exercice 2
1) dep nom cp nb_hab_2010 nb_hab_1999 30127 73 BONNEVAL-SUR-ARC 73480 241 239
nb_hab_2012 \ 200
1618 4 LARCHE 4540 74 83 100
1790 5 RISTOLAS 5460 90 78 100 dens surf long lat alt_min alt_max
1798 5 SAINT-VERAN 5350 257 265 300 1618 1 68.86 6.85000 44.4500 1606.0 3165.0
1847 5 MOLINES-EN-QUEYRAS 5350 315 322 1790 1 82.18 6.95000 44.7667 1571.0 3294.0
300 1798 5 44.75 6.86667 44.7000 1756.0 3175.0
1904 5 ABRIES 5460 365 358 400 1847 5 53.62 6.85000 44.7333 1625.0 3160.0
1923 5 VILLAR-D'ARENE 5480 287 217 300 1904 4 77.13 6.93333 44.7833 1513.0 3305.0
26927 66 LA LLAGONNE 66210 242 264 300 1923 3 77.51 6.33711 45.0423 1519.0 3883.0
26943 66 CAUDIES-DE-CONFLENT 66360 13 6 26927 10 23.09 2.11667 42.5333 1546.0 2196.0
0 26943 2 6.50 2.16139 42.5673 1616.0 2045.0
27039 66 PORTE-PUYMORENS 66760 131 147 27039 2 49.42 1.83333 42.5500 1557.0 2827.0
100 27125 633 0.39 2.11667 42.5167 1516.0 1608.0
27125 66 MONT-LOUIS 66210 247 272 300 27134 13 43.20 2.07445 42.5778 1531.0 2808.0
27134 66 ANGLES 66210 566 589 600 29970 2 128.08 6.99167 45.3167 1673.0 3754.0
29970 73 BESSANS 73480 343 310 300 30114 16 94.39 6.98333 45.4500 1785.0 3599.0
30114 73 VAL-D'ISERE 73150 1563 1628 1600 30127 2 82.72 7.05000 45.3667 1759.0 3642.0
2) dep nom alt_min
1618 4 LARCHE 1606.0
1790 5 RISTOLAS 1571.0
1798 5 SAINT-VERAN 1756.0
1847 5 MOLINES-EN-QUEYRAS 1625.0
1904 5 ABRIES 1513.0
1923 5 VILLAR-D'ARENE 1519.0
26927 66 LA LLAGONNE 1546.0
26943 66 CAUDIES-DE-CONFLENT 1616.0
27039 66 PORTE-PUYMORENS 1557.0
27125 66 MONT-LOUIS 1516.0
27134 66 ANGLES 1531.0
29970 73 BESSANS 1673.0
30114 73 VAL-D'ISERE 1785.0
30127 73 BONNEVAL-SUR-ARC 1759.0
3) selec=infoVille.loc[infoVille["dens"]>600,["dep","nom","den","alt_min"]]
Exercice 3
1) selec=infoVille.loc[(infoVille["dens"]>600)&(infoVille["alt_min"]>1500)]
2) selec=infoVille.loc[(infoVille["surf"]>200)|(infoVille["alt_min"]>1500)]
Exercice 4
moy_hab=infoVille.loc[:,"nb_hab_2012"].mean()
Exercice 5
1) Le programme affiche les communes classées par surface décroissante.
2) La méthode loc [0, :] permet d'afficher la ville qui a l'index 0 (la 1ere de la liste originale) mais il existe une
méthode permettant d'afficher la ville qui est au 1er rang de la liste crée : c'est iloc[0,:]
choix=infoVille.sort_values(by=["alt_min"],ascending=False).iloc[0,:]
3) choix=infoVille.sort_values(by=["alt_min"]).iloc[0,:]
4) iloc [0,[0,1,6]] permet d'afficher la ville au 1er rang (index 0) et seulement les colonnes 0,1 et 6
choix=infoVille.sort_values(by=["dens"],ascending=False).iloc[0:1,[0,1,6]]
5)selec=infoVille.loc[(infoVille["nb_hab_2010"]<10000)&(infoVille["surf"]>50)
,["dep","nom","surf","nb_hab_2010","dens"]].sort_values(by=["dens"],ascending
=False).iloc[0,:]]
Exercice 5
1) Le programme affiche les communes de lus de 3000 habitants (en 2012) et dont l'altitude minimale est à plus de
600m. Chaque commune apparait comme un cercle dont le rayon est proportionnel à sa population.
2) Les langages utilisés dans la page Web sont HTML, CSS et JavaScript