Pandas 2.0 est arrivé

Feb 27 2023
Python Pandas 2.0 vient de sortir et voici ce qu'ils ont ajouté et amélioré (cela va changer beaucoup de choses) Si vous travaillez dans l'industrie des données (ingénierie des données/science/ml), vous savez peut-être déjà ce que Pandas parle spécialement des données Ingénierie, Pandas avait l'habitude d'obtenir beaucoup de haine car il ne donne pas une performance optimale tout en travaillant avec un grand ensemble de données.

Python Pandas 2.0 vient de sortir et voici ce qu'ils ont ajouté et amélioré (cela va changer beaucoup de choses)

Photo de Pascal Müller sur Unsplash

Si vous travaillez dans l'industrie des données (ingénierie des données/science/ml), vous savez peut-être déjà ce qu'est Pandas

En ce qui concerne spécialement l'ingénierie des données, Pandas avait l'habitude de recevoir beaucoup de haine car il ne donne pas une performance optimale tout en travaillant avec un grand ensemble de données.

Pandas 2.0 est un pas dans cette direction, voici les 3 principales fonctionnalités

Opérations plus rapides et plus économes en mémoire

Ils ont ajouté la prise en charge de pyarrow dans le backend.

Le backend pyarrow est une nouvelle fonctionnalité de pandas 2.0 qui permet aux utilisateurs d'utiliser Apache Arrow comme format de stockage de données alternatif pour les pandas DataFrames et Series.

Cela signifie que lorsque vous lisez ou écrivez des fichiers Parquet dans pandas 2.0, il utilisera pyarrow par défaut pour gérer les données, ce qui se traduira par des opérations plus rapides et plus économes en mémoire.

Qu'est-ce qu'un pyarrow ?
Pyarrow est une bibliothèque qui fournit un format de mémoire en colonnes, qui est un moyen d'organiser les données qui facilite la lecture et le traitement en parallèle.

En résumé, l'utilisation du backend pyarrow dans pandas 2.0 peut entraîner des opérations de données plus rapides et plus économes en mémoire, en particulier lorsque vous travaillez avec de grands ensembles de données.

Soutenu par PyArrow

Optimisation de la copie sur écriture

Similaire à Spark et à la façon dont il exécute le code

Il s'agit d'une technique d'optimisation de la mémoire utilisée dans les pandas pour améliorer les performances et réduire l'utilisation de la mémoire lorsque vous travaillez avec de grands ensembles de données.

L'idée est que lorsque vous faites une copie d'un objet pandas, comme un DataFrame ou une série, au lieu de créer une nouvelle copie des données immédiatement, les pandas créeront une référence aux données d'origine et différeront la création d'une nouvelle copie jusqu'à ce que vous modifiiez le données d'une certaine manière.

Cela signifie que si vous avez plusieurs copies des mêmes données, elles peuvent toutes référencer la même mémoire jusqu'à ce que vous apportiez une modification à l'une d'entre elles. Cela peut réduire considérablement l'utilisation de la mémoire et améliorer les performances car vous n'avez pas besoin de faire des copies inutiles des données.

Dans l'ensemble, la copie sur écriture est une technique d'optimisation puissante qui peut vous aider à travailler avec de grands ensembles de données plus efficacement et avec moins de mémoire.

Copie sur écriture

L'index peut maintenant contenir des types numériques NumPy

Résumé rapide : de meilleurs index, un accès et des calculs plus rapides

Détails :
Pandas 2.0 permet à Index de contenir n'importe quel dtype numérique NumPy, y compris int8, int16, int32, int64, uint8, uint16, uint32, uint64, float32 et float64.

Auparavant, seuls les types int64, uint64 et float64 étaient pris en charge.

Par conséquent, les opérations qui créaient auparavant des index 64 bits peuvent désormais créer des index avec des tailles de bits inférieures, comme les index 32 bits.

Index numpy

TL; DR
1. Ajout de pyarrow dans la sauvegarde, ce qui se traduit par des opérations plus rapides et plus économes en mémoire.
2. Optimisation de la copie sur écriture : similaire à Spark et à la manière dont il exécute le code
3. L'index peut désormais contenir des types numériques NumPy, ce qui accélère les opérations

Je vais également ajouter des tutoriels sur ces fonctionnalités dans mon cours Python for Data Engineering.

Si vous voulez tout savoir sur Python pour l'ingénierie des données, consultez

https://learn.datawithdarshil.com/courses/Python-for-Data-Engineering