Contexte :
Les versions Pandas 0.13 et supérieures sont introduites le SettingWithCopyWarning pour mettre en évidence la confusion potentielle causée par "enchaîné" missions. Cet avertissement vise à résoudre les scénarios dans lesquels une copie d'un DataFrame est modifiée, conduisant à des résultats inattendus.
Que signifie l'avertissement ?
L'avertissement indique qu'une valeur est défini sur une copie d'une tranche d'un DataFrame. Plus précisément, il suggère de remplacer la ligne suivante :
quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
par :
quote_df.loc[row_index, 'TVol'] = value
Comment corriger l'avertissement :
La solution fournie par l'avertissement est d'utiliser l'indexation loc à la place. Cependant, cela peut ne pas convenir à tous les cas d’utilisation. Si vous ne vous souciez pas de mettre à jour le DataFrame d'origine, vous pouvez désactiver l'avertissement en toute sécurité avec :
import pandas as pd pd.options.mode.chained_assignment = None # default='warn'
Autre explication :
Les indicateurs SettingWithCopyWarning enchaînent les affectations qui le font ne fonctionne pas toujours comme prévu. Le problème survient lorsque la première sélection renvoie une copie du DataFrame et que les affectations ultérieures sont effectuées sur cette copie. Ce modèle peut prêter à confusion car les modifications ne sont pas reflétées dans le DataFrame d'origine.
Dans votre cas, le code suivant est à l'origine de l'avertissement :
quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
Depuis quote_df['TVol' ] est une copie, l'affectation ne modifiera pas le DataFrame d'origine. Envisagez plutôt d'utiliser :
quote_df = quote_df[quote_df['TVol'] > 0] quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
Ressources supplémentaires :
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!