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
:
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