Python site

Chapitre 1 : Manipuler les données

Numpy : bibliothèque python de bas niveau utilisée pour le calcul scientifique :

  • Permet notamment de travailler avec des tableaux et matrices multidimensionnels et volumineux homogènes (c’est-à-dire de même type).
  • Dont l’objet principal est le ndarray (un type de tableau à N dimensions)

Pandas : package de manipulation de données pour manipuler des données de haut niveau construits sur numpy

  • La série est le principal élément constitutif des pandas. Une série est un tableau unidimensionnel basé sur numpy ndarray. Dans un dataframe, une série correspond à une colonne.
  • Un dataframe est un tableau de données étiquetée en 2 dimensions dont les colonnes sont constituées par un ndarray, une série ou un autre dataframe.

Numpy

Numpy est le package incontournable pour effectuer du calcul scientifique en python, en facilitant notamment la gestion des tableaux et des matrices de grande dimension. La documentation officielle est disponible via ce lien.

Numpy permet de manipuler des arrays ou des matrices, pouvant être par exemple construites à partir d’arrays. Un array correspond à un tableau de valeurs du même type. Les opérations mathématiques sont facilitées par un ensemble de fonctions accessibles dans le package numpy. Le site offre un large panorama des fonctionnalités de numpy.

NB : L’alias np est très souvent utilisé pour désigner numpy

Petit rappel : en python, les indices commencent à zéro. Le premier élément de l’array s’obtient donc avec la commande a[0]

App 1 : Charger numpy

import numpy as np

App 2 : Créer un array constitué que de 1 et un autre que de 0

App 3 : Créer un array avec des éléments parcourant 0 à 10 inclus de 2 en 2

App 4 : Concaténer l’array précédent avec un array contenant les entiers de 0 à 5 inclus

App 5 : Concaténer verticalement (pour former un array de listes) l’array précédent avec un array contenant les entiers de 0 à 5 inclus

App 6 : Vérifier que tous les éléments de l’array contenant les entiers de 0 à 5 inclus sont inférieurs à 10

App 7 : Vérifier que l’un des éléments de l’array contenant les entiers de 0 à 5 inclus est supérieur strictement à 4

Pandas

Le package pandas fournit de nombreux outils pour faciliter la manipulation des données. Pandas permet notamment de :

  • importer et exporter des données depuis divers formats (csv, Excel, **, HTML, json, parquet …)
  • définir des dataframes cad des tableaux de données variables (colonnes) x individus (lignes)
  • manipuler des dataframes (gestion des valeurs manquantes, création de variables, filtre selon les variables ou les individus, fusion de différents dataframes)
  • effectuer des statistiques descriptives (comptage et agrégation de données par groupe)
  • tracer directement des graphes grâce à l’intégration dans pandas d’objets matplotlib

La documentation officielle est disponible via ce lien. Le site fournit aussi un large éventail d’exemples.

App 1 : Charger pandas

import pandas as pd

App 2 : Lire les données de population du fichier Excel base-pop-historiques-1876-2015.xls et afficher les 4 premières lignes

NB : Même s’il reste préférable d’opter pour un autre format que celui de SAS, pandas offre toutefois la possibilité de gérer le format sas7bdat avec la fonction read_sas. Voici un exemple de code qui utilise cette fonction :

import pandas as pd
data = pd.read_sas("train.sas7bdat", format="sas7bdat", encoding='utf8')
data.head(2)

App 3 : Afficher les dimensions de la table pop

App 4 : Afficher les nom de colonnes de la table pop

App 5 : Lire les données de population du fichier csv commune2019.csv et afficher les 2 premières lignes

App 6 : Compter le nombre de valeurs na et non na pour la variable “comparent”

App 7 : Afficher la fréquence de chaque modalité de la variable “typecom”

App 8 : Afficher le type des variables de la table communes

App 9 : Si aucun typage n’a été imposé dans le read_csv, on constate que les régions (reg) sont considérées comme float alors que les départements (dep) sont considérés comme un objet. Pourquoi la variable reg n’est pas perçue comme un entier ? Pourquoi la variable dep est interprétée comme un objet ?

NB : A quoi correspond le type object ?

Le type Objet de python est le type de base qui s’appuie sur la classe parente de toutes les classes.

App 10 : Afficher les observations relatives à la ville de Lyon

App 11 : Etes vous sûrs d’afficher toutes les observations associées à la ville de Lyon ? Afficher les observations contenant “yon”

App 12 : Afficher maintenant les observations contenant ‘lyon’ en gérant la casse

App 13 : Afficher maintenant les libellés présents dans les deux listes (ceux contenant lyon et ceux contenant yon)

App 14 : Afficher maintenant les libellés de la liste associée à yon et pas à la liste associée à lyon

App 15 : Importer l’onglet “définitif_patrimoine” du fichier Excel isfcom2017

App 16 : Afficher le nom des colonnes de ce dataframe

App 17 : Fusionner la table des communes avec cette nouvelle table en ne conservant que les observations communes

App 18 : Pourquoi le nombre de lignes de isf_communes est supérieur à celui de isf

App 19 : Supprimer les observations associées aux communes déléguées (typecom égal à COMD)

App 20 : Vérifier que la ville issue de chaque table est identique dans la base fusionnée

App 21 : Afficher, par ordre décroissant, le nombre total de redevables par région

App 22 : Afficher, par ordre décroissant, le nombre moyen de redevables par département pour les départements où ce nombre moyen dépasse 500

App 23 : Afficher le nombre moyen de redevables par région x département

App 24 : Afficher le nombre moyen de redevables par région x département x typecom en créant une colonne par typecom

App 25 : Transposer la table isf_communes pour que les trois variables ‘nombre de redevables’,‘patrimoine moyen en €’,‘impôt moyen en €’ soient au sein d’une même variable en tant que modalité et les valeurs associées dans une seule colonne

Last updated on 18 Mar 2019 / Published on 18 Mar 2019
Edit on GitHub