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.
L’écosystème pandas
représente un couteau-suisse
pour l’analyse de données. Cependant, il n’est pas
adapté à des données ayant une volumétrie
importante. Pour traiter de telles
données, il est plutôt recommander
de privilégier Dask
ou Spark
.
Structure de la partie
Cette partie du cours est une introduction
générale à l’écosystème très riche de
la manipulation de données avec Python
.
Ces chapitres évoquent aussi bien la récupération de données
que la restructuration et la production d’analyse
à partir de celles-ci. Les chapitres sont les suivants:
-
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 complexes de manière simple.
-
Pratique de geopandas avec les 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.
-
Récupérer des données avec des API depuis 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.
-
Introduction à dask grâce aux données DVF
pandas peut rapidement trouver ses limites lorsqu’on désire exploiter des données volumineuses. Pour ces dernières, il existe des librairies plus adaptées que pandas. L’une d’elle est dask qui fournit une syntaxe très proche de celle de pandas mais avec, en arrière-plan, un framework plus adapté aux données volumineuses.
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