Article épinglé

samedi 20 février 2021

Python et données structurées, quelle est ton prénom?

Objectif

Créer un graphique du nombre d'affectation de votre prénom en utilisant les données de l'INSEE. Pour vous donner une idée du résultat, voici ce que cela peut donner avec le prénom Dominique de sexe feminin:


Source INSEE

Les fichiers proposés en téléchargement recensent les naissances et non pas les personnes vivantes une année donnée. Ils sont proposés dans deux formats (DBASE et CSV). Pour utiliser ces fichiers volumineux, il est recommandé d'utiliser un gestionnaire de bases de données ou un logiciel statistique. Le fichier au niveau national peut être ouvert à partir de certains tableurs. Le fichier au niveau départemental est en revanche trop volumineux (3,5 millions de lignes) pour pouvoir être consulté avec un tableur.

Les données sont accessibles dans un fichier de données nationales qui contient les prénoms attribués aux enfants nés en France hors Mayotte entre 1900 et 2019 et les effectifs par sexe associés à chaque prénom

Séparateur de champ = ;
  • sexe = 1 homme / 2 femme
  • preusuel = prénom usuel
  • annais = année de naissance
  • nombre = nombre d'enfants portant le prénom

Liens

Support de cours

L'objectif est ici de comprendre et d'adapter un script permettant de créer un graphique des prénoms de 1900 à 2019.

Voir ici pour le support de cours

Et voir ici pour le script final pour le prénom DOMINIQUE, c'est ma collègue de SNT.
Pour le tester vous pouvez utiliser Trinket
(Vous noterez donc les deux critères de sélection : prenom & sexe)
#ceci est un script
import pandas as pd
url="https://www.ipa-troulet.fr/cours/attachments/article/577/nat2019.csv"
donnees = pd.read_csv(url, sep=";",encoding="utf-8")

prenom="DOMINIQUE"
#
print("les donnees sources")
print(donnees)

# Sélection du prénom et du sexe
print(" Mon choix prenom")
df=donnees.loc[(donnees['preusuel']==prenom)&(donnees['sexe']==2),:]
print(df)

#
print("Je suppr les XXXX de annais")
df.drop( df[df['annais']=="XXXX"].index, inplace=True)
print(df)
print("Je suppr les colonnes sexe et preusuel")
del df['sexe'],df['preusuel']
print(df)

#
import matplotlib.pyplot as plt
df = df.set_index('annais')
df.plot(kind='bar')
plt.title("Evolution du nombre d'attribution du prenom =" +prenom)
plt.xlabel('Annees de 1900 à 2019')
plt.xticks(fontsize=8)
plt.show()

Aucun commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)