Maison > développement back-end > Tutoriel Python > Comment puis-je gérer efficacement les paramètres de Pandas avec CopyWarning ?

Comment puis-je gérer efficacement les paramètres de Pandas avec CopyWarning ?

Linda Hamilton
Libérer: 2024-12-25 15:02:12
original
183 Les gens l'ont consulté

How Can I Effectively Handle Pandas' SettingWithCopyWarning?

Gestion de SettingWithCopyWarning dans Pandas

Lors de la mise à niveau de Pandas de 0.11 à 0.13.0rc1, les utilisateurs peuvent rencontrer de nombreux messages SettingWithCopyWarning. Un tel exemple est :

E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
quote_df['TVol']   = quote_df['TVol']/TVOL_SCALE
Copier après la connexion

Comprendre l'avertissement

Le SettingWithCopyWarning signale des affectations « enchaînées » potentiellement déroutantes comme :

df[df['A'] > 2]['B'] = new_val  # new_val not set in df
Copier après la connexion

Cela ne fonctionne pas toujours comme attendu, surtout lorsque la première sélection renvoie une copie. Pour résoudre ce problème, utilisez :

df.loc[df['A'] > 2, 'B'] = new_val
Copier après la connexion

Réponse à l'avertissement dans le code fourni

Dans l'extrait de code fourni :

quote_df['TVol']   = quote_df['TVol']/TVOL_SCALE
Copier après la connexion

vous effectuez effectivement une affectation chaînée équivalente à :

quote_df = quote_df[quote_df['A'] > 2]
quote_df['TVol'] = new_val
Copier après la connexion

Ce modèle ne peut pas être distingué de l'exemple négatif et déclenche le avertissement.

Désactivation de l'avertissement

Si vous êtes sûr que les écritures n'affecteront pas le cadre d'origine, désactivez l'avertissement avec :

import pandas as pd
pd.options.mode.chained_assignment = None  # default='warn'
Copier après la connexion

Informations supplémentaires

Pour une meilleure compréhension, reportez-vous à ces ressources :

  • Guide de l'utilisateur Pandas : indexation et sélection data
  • Manuel Python Data Science : indexation et sélection des données
  • Real Python : SettingWithCopyWarning dans Pandas
  • Dataquest : SettingwithCopyWarning : Comment corriger cet avertissement dans Pandas
  • Vers la science des données : expliquer le SettingWithCopyWarning chez les pandas

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal