Exploitation de données dans un fichier CSV

10-02-2023

Objectifs

  • lecture de fichiers CSV

  • traitement de données

  • production de graphiques

Le matériel

L”INSEE (Institut National de la Statistique et des Études Économiques) est l’organisme chargé de collecter, produire, analyser, diffuser des informations économiques et sociales sur l’ensemble du territoire français.

En particulier on peut y trouver des données concernant la population. Dans ce TP, vous allez travailler avec les données sur la population du département du Nord telle qu’elle était en 2016.

À récupérer

Récupérez le fichier de données rp2016_td_pop1B.xls que l’INSEE met à disposition sur son site, et enregistrez-le dans votre dossier de travail. Pour cela, sur PC, il est conseillé de faire un clic droit sur le lien, et de choisir d’enregistrer la cible du lien … dans le dossier de votre choix.

Contrairement à ce que peut faire penser l’extension du nom de ce fichier (xls), ce fichier n’est pas au format Microsoft Excel, mais c’est un fichier texte contenant des données au format CSV 1.

Cependant, la plupart des tableurs (Microsoft Excel, LibreOffice Calc, …) sont capables de lire les fichiers au format CSV. Vous pouvez donc ouvrir ce fichier avec le tableur de votre choix, en précisant que le séparateur de champs est la tabulation. Et vous pourriez répondre à la plupart des questions qui suivent avec le tableur, mais ce n’est pas évidemment pas l’objectif de ce travail.

Une seconde surprise avec ce fichier est l’encodage utilisé qui n’est pas l’UTF-8 comme on aurait pu s’y attendre mais l’ISO-8859.

À tester

Avec un interpréteur Python, tentez d’ouvrir ce fichier en mode lecture de texte sans préciser le paramètre encoding et de le lire. Que constatez-vous ?

Comment résoudre le problème ?

Le travail à effectuer

Lire les données

Le fichier rp2016_td_pop1B/xls contient des données sur la population du Nord telle qu’elle était en 2016.

Ces données sont réparties en deux tableaux :

  1. l’un, qui va des lignes 8 à 28 incluses, donne les nombres d’hommes, de femmes et le total par tranches d’âges de cinq ans, la dernière tranche étant 100 ans ou plus.

  2. l’autre qui va des lignes 36 à 136 incluses, donne les mêmes données mais tranche d’un an, la dernière tranche étant toujours 100 ans ou plus.

Le séparateur de données est la tabulation (caractère \t).

À faire

Choisissez une structure de données contenant toutes les données de ce fichier comprises entre les lignes 36 et 136, et construisez-la.

Traitement des données

Répondez à toutes les questions qui suivent en écrivant une ou plusieurs instructions en Python qui utilise la structure de données que vous avez construite.

À faire

Est-ce que pour chaque âge, le nombre donné dans la colonne Ensemble est bien la somme des nombres des deux colonnes Hommes et Femmes ?

À faire

Produire un graphique montrant les nombres d’hommes et de femmes en fonction de leur âge.

À faire

À la naissance on peut constater qu’il y a plus d’hommes que de femmes, et en revanche chez les personnes âgées les femmes sont plus nombreuses. À quel âge l’inversion se fait-elle ?

À faire

Calculez les âges moyens des hommes et des femmes. Pour la tranche d’âge 100 ans et plus vous prendrez un âge commun de 105 ans.

À faire

Calculez les âges médians des hommes et des femmes.

Produire des données

À faire

Produisez un fichier au format CSV, nommé population_nord_2016_par_cinq_ans.csv contenant les données sur la population du Nord exprimées comme dans le tableau des lignes 8 à 28 du fichier initial. Le séparateur sera le caractère ;. Voici les premières lignes du fichier que vous devez obtenir :

tranches;Hommes;Femmes;Ensemble
0-4;89220;85631;174851
10-14;88490;83837;172327
15-19;91759;87342;179101
20-24;88991;88674;177664
...

Notes

1

faut-il en déduire que les statisticiens de l’INSEE sont des gens facétieux ?