Partie 1: manipuler des données

Le dataframe est l’outil central du logiciel R mais il s’agit d’un objet qui, en Python, ne s’est imposé que récemment, notamment grâce au package pandas. Le concept de dataframe est relativement intuitif et il existe un grand socle d’approches, héritières notamment de la logique SQL, facilitant le maniement de ces données.

pandas est devenu incontournable dans l’écosystème Python pour la data science. pandas est lui-même construit à partir du package numpy, qu’il est utile de comprendre pour être à l’aise avec pandas. numpy est une librairie bas-niveau pour stocker et manipuler des données. numpy est au coeur de l’écosystème de la data science car la plupart des librairies, même celles qui manient des objets destructurés, utilisent des objets construits à partir de numpy.

L’approche pandas a été étendue aux objets géographiques avec geopandas. Il est ainsi possible de manipuler des données géographiques comme s’il s’agissait de données structurées classiques. Les données géographiques et la représentation cartographique deviennent de plus en plus commun avec la multiplication de données ouvertes localisées et de big-data géolocalisées.

Cependant, les données structurées, importées depuis des fichiers plats ne représentent pas l’unique source de données. Les API et le webscraping permettent de requêter ou d’extraire des données de manière très flexible. Ces données, notamment celles obtenues par webscraping nécessitent souvent un peu plus de travail de nettoyage de données, notamment des chaînes de caractère.

Structure de la partie

  • Retour sur numpy

    numpy constitue la brique de base de l’écosystème de la data-science en Python. Toutes les librairies de manipulation de données, de modélisation et de visualisation reposent, de manière plus ou moins directe, sur numpy. Il est donc indispensable de revoir quelques notions sur ce package avant d’aller plus loin.

  • Introduction à pandas

    pandas est l’élément central de l’écosystème Python pour la data-science. Le succès récent de Python dans l’analyse de données tient beaucoup à pandas qui a permis d’importer la logique SQL dans le langage Python. pandas embarque énormément de fonctionalités qui permettent d’avoir des pipelines efficaces pour traiter des données de volumétrie moyenne (jusqu’à quelques Gigas). Au-delà de cette volumétrie, il faudra se tourner vers d’autres solutions (PostgresQL, Dask, Spark…).

  • Pratique de pandas: un exemple complet

    Après avoir présenté la logique de pandas dans le chapitre précédent, ce chapitre vise à illustrer les fonctionalités du package à partir de données d’émissions de gaz à effet de serre de l’Ademe.

  • Données spatiales: découverte de geopandas

    Les données géolocalisées se sont multipliées depuis quelques années, qu’il s’agisse de données open-data ou de traces numériques géolocalisées de type big-data. Pour les données spatiales, le package geopandas étend les fonctionalités de l’écosystème pandas afin de permettre de manipuler des données géographiques complexe de manière simple.

  • Pratique de geopandas: données vélib

    Ce chapitre illustre les fonctionalités de geopandas à partir des décomptes de vélo fournis par la ville de Paris en opendata. Il prolonge le chapitre précédent avec des données un petit peu plus complexes à manipuler.

  • Webscraping avec python

    Python permet de facilement récupérer une page web pour en extraire des données à restructurer. Le webscraping, que les Canadiens nomment “moissonnage du web”, est une manière de plus en plus utilisée de récupérer une grande masse d’information en temps réel.

  • Maîtriser les expressions régulières

    Les expressions régulières fournissent un cadre très pratique pour manipuler de manière flexible des données textuelles. Elles sont très utiles notamment pour les tâches de traitement naturel du langage (NLP) ou le nettoyage de données textuelles.

  • Exercices supplémentaires de webscraping

    Un exercice supplémentaire de webscraping, où l’on construit de manière automatique sa liste de courses à partir des données de Marmiton.

  • Requêter via des API avec Python

    Les API (Application Programming Interface) sont un mode d’accès aux données en expansion. Grâce aux API, l’automatisation de scripts est facilitée puisqu’il n’est plus nécessaire de stocker un fichier, et gérer ses différentes versions, mais uniquement de requêter une base et laisser au producteur de données le soin de gérer les mises à jour de la base.

Exercices

Les notebooks d’exercices sont listés ici. Il est possible de les consulter sur ce site ou d’utiliser l’un des badges présents en début de chapitre, par exemple ceux-ci pour ouvrir le TP pandas:

Download nbviewer Onyxia
Binder Open In Colab githubdev

Pour aller plus loin

Ce cours n’aborde pas encore les questions de volumétrie ou de vitesse de calcul. pandas peut montrer ses limites dans ce domaine.

Il est ainsi intéressant de porter attention à:

  • Le livre Modern Pandas pour obtenir des éléments supplémentaires sur la question de la performance avec pandas
  • La question des objets sparse
  • Le package dask pour accélérer les calculs
  • pySpark pour des données très volumineuses