Maison  >  Article  >  développement back-end  >  Quelle méthode est la plus rapide pour créer de nouvelles colonnes dans un DataFrame Pandas : Pandas Apply ou NumPy Vectorize ?

Quelle méthode est la plus rapide pour créer de nouvelles colonnes dans un DataFrame Pandas : Pandas Apply ou NumPy Vectorize ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 14:40:03695parcourir

Which Method is Faster for Creating New Columns in a Pandas DataFrame: Pandas Apply or NumPy Vectorize?

Considérations sur les performances de Pandas apply vs NumPy vectorize pour la création de colonnes

Bien que Pandas apply soit largement utilisé, ses performances sont en retard par rapport à NumPy vectorize lors de la création de nouvelles colonnes à partir de celles existantes. Cette disparité est attribuée au fait que les fonctions apply sont des boucles de niveau Python, qui entraînent une surcharge importante. En revanche, vectorize convertit la fonction d'entrée en fonction universelle, améliorant considérablement l'efficacité.

Benchmarks de performances

En comparant les boucles au niveau Python et en les appliquant avec raw=True, nous observez :

  • La cartographie, la compréhension de liste avec zip et la vectorisation présentent des performances similaires.
  • appliquer avec raw=True est nettement plus rapide que sans raw=True.

Véritable vectorisation

Cependant, apply et vectorize sont éclipsés par de véritables opérations de vectorisation telles que np.where, qui effectuent des calculs élément par élément sur les tableaux NumPy. Cette approche est remarquablement plus rapide, éliminant le besoin de boucle.

Autres considérations en matière de performances

Pour les goulots d'étranglement critiques, pensez à numba, un outil qui compile les fonctions Python en C hautement optimisé code. Grâce à numba, les calculs peuvent être encore accélérés.

Conclusion

Lors de la création de nouvelles colonnes à partir de colonnes existantes, NumPy vectorize offre des performances supérieures à celles de Pandas apply en raison de sa vectorisation native. capacités. Pour une efficacité optimale, une véritable vectorisation doit être utilisée le cas échéant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn