Les INDEX sous #Pandas sont souvent incompris et mal utilisés
Ils sont pourtant d'une grande aide, surtout si on a besoin de performance avec des dataframes volumineux
L'idée principale est qu'ils vous apporteront de la performance s'ils sont UNIQUES
> Illustration
1/ Sélection de lignes d'un df sans faire appel à l'index
Sur un df de 10.000 éléments, la recherche d'une ligne sans faire appel à l'index prend 373 µs (sur mon laptop)
2/ Sélection de lignes d'un df avec appel à l'index
Sur un df de 10.000 éléments, la recherche d'une ligne en utilisant l'index prend 60 µs
Soit un facteur 6 entre les 2 méthodes
3/ Sélection de lignes d'un df avec appel à l'index contenant des doublons
Ici le df n'est pas trié suivant l'index
Sur un df de 10.000 éléments, la recherche d'une ligne en utilisant l'index prend 100 µs
Même test, mais cette fois ci en triant le df suivant l'index
On obtient quasiment les mêmes résultats
4/ Sélection de lignes d'un df avec appel à l'index et dataframe non trié par l'index
Ici le df n'est pas trié suivant l'index
Sur un df de 10.000 éléments, la recherche d'une ligne en utilisant l'index prend 60 µs, soit le même ordre de grandeur qu'avec un df trié
En résumé, pour tirer le maximum des index en terme de performance, faites en sorte qu'ils soient uniques
Dans ce cas, Pandas construira une table de hashage qui rendra la recherche via cet index performante
J'ai mis à votre disposition un guide gratuit sur Pandas si cela vous intéresse
Vous l'avez à cette adresse
objectifdatascience.com
Je viens de me rendre compte que je n'ai pas changé la ligne de commentaire au début de chaque screen de code
Sorry si cela porte à confusion !
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.