← 11d.im

s'améliorer en pandas

18.03.2022

Pandas est une bibliothèque Python permettant de faire de la manipulation de données.

À chaque fois que cette bibliothèque apparaît dans une conversation, un motif qui se répète est la difficulté d’en faire une compétence et qu’il faut régulièrement ré-apprendre à l’utiliser. Comme beaucoup, je crois, je n’ai pas eu d’apprentissage formelle de cette bibliothèque et je l’utilise de façon opportuniste et performative (j’utilise pandas donc je fais de la data science). Je galère toujours quelques minutes à me remettre dans l’intentionnalité de la syntaxe et je finis régulièrement par faire des boucles et des fonctions anonymes en python d’origine.

La lecture d’effective pandas m’a beaucoup aidé à remettre au clair comment et pourquoi utiliser pandas. Mon objectif est de ne plus avoir l’impression de me battre contre ces bouts de code et de pouvoir me concentrer sur l’analyse de données plutôt qu’avoir l’impression de faire de la programmation autour de données. Ne plus avoir à réfléchir à python ou pandas mais aux données que je suis entrain de regarder. Pour que cela devienne naturel et intuitif, je suppose qu’il faut donc changer de stratégie et passer par un apprentissage cumulatif (sans que cela soit simple ou immédiat) plutôt que de revenir à zéro régulièrement.

Ce que j’en retiens principalement :

Pandas est organisé autour de series et les dataframes ne viennent qu’après. C’est contre-intuitif car j’ai l’habitude de travailler sur des tableaux et devoir des tableaux. Cela se justifie par une optimisation des calculs et ce qui fait l’interêt de la bibliothèque et surtout de son APILa syntaxe, le nom et l’organisation des fonctions etc. Dask et pola.rs sont deux exemples de bibliothèque utilisant l’API de pandas. : exploiter les calculs vectoriels de numpy. Une approche à l’ancienne tend à annuler tout l’intérêt de l’API. C’est peut être ça qui me frustrait inconsciemment. Le livre passe ainsi beaucoup de temps sur les séries puis recolle les morceaux dans le cadre de la manipulation de dataframes. J’ai l’impression que cela fonctionne plutôt bien et que les concepts adhèrent mieux à mon cerveau.

Le method chaining rend le code plus lisible pour soi et les autres et quelque part élégant. Cela ressemble à la manière que j’ai déjà de faire en javascript à cause d’observable. Tout cela provient certainement de R. C’est peut-être qu’une question de mode.

Est-ce que le livre vaut le détour et le prix ? Je le saurai sans doute dans quelques années. En relisant du vieux code et en le récrivant, j’étais plutôt content de moi donc il y a aussi un effet immédiat quand même.

Il y a un petit dark pattern au moment de l’achat. Au cours de celui-ci, le site propose une réduction sur un bundle comprenant plusieurs cours en ligne. J’ai voulu cliquer pour voir si la réduction incluait l'achat du pdf mais en fait cela déclenche un nouvel achat et quelque part fait acheter le pdf deux fois.