"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les affectations chaînées sont-elles efficaces chez Pandas ?

Les affectations chaînées sont-elles efficaces chez Pandas ?

Publié le 2024-11-08
Parcourir:560

Are Chained Assignments Efficient in Pandas?

Affectations chaînées dans Pandas

Introduction

Les affectations chaînées dans Pandas, une bibliothèque de manipulation de données populaire, sont des opérations effectuées successivement sur les valeurs d'un bloc de données. Cela peut entraîner des problèmes de performances si les opérations ne sont pas gérées correctement.

Avertissements d'affectation chaînée

Pandas émet des avertissements SettingWithCopy pour indiquer des inefficacités potentielles dans les affectations chaînées. Les avertissements avertissent les utilisateurs que les affectations peuvent ne pas mettre à jour le bloc de données d'origine comme prévu.

Copies et références

Lorsqu'une série Pandas ou un bloc de données est référencé, une copie est renvoyée. Cela peut conduire à des erreurs si l'objet référencé est modifié ultérieurement. Par exemple, le code suivant peut ne pas se comporter comme prévu :

data['amount'] = data['amount'].fillna(float)

L'affectation ci-dessus crée un copie de la série data['amount'], qui est ensuite mise à jour. Cela empêche la mise à jour du bloc de données d'origine.

Opérations sur place

Pour éviter de créer des copies inutiles, Pandas fournit des opérations sur place désignées par .inplace (True). Ces opérations modifient directement le bloc de données d'origine :

data['amount'].fillna(data.groupby('num')['amount'].transform('mean'), inplace=True)

Avantages d'éviter les affectations chaînées

L'utilisation d'opérations sur place ou d'affectations distinctes présente plusieurs avantages :

  • Améliore les performances en évitant les copies inutiles.
  • Améliore la clarté du code en indiquant explicitement la modification des données.
  • Permet d'enchaîner plusieurs opérations sur des copies, par exemple :
data['amount'] = data['amount'].fillna(mean_avg) * 2

Conclusion

Comprendre les affectations chaînées dans Pandas est crucial pour optimiser l'efficacité du code et éviter les erreurs de modification des données. En adhérant aux pratiques recommandées décrites dans cet article, vous pouvez garantir l'exactitude et les performances de vos opérations Pandas.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729721319. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3