Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich mit SettingWithCopyWarning von Pandas effektiv umgehen?

Wie kann ich mit SettingWithCopyWarning von Pandas effektiv umgehen?

Linda Hamilton
Freigeben: 2024-12-25 15:02:12
Original
134 Leute haben es durchsucht

How Can I Effectively Handle Pandas' SettingWithCopyWarning?

Umgang mit SettingWithCopyWarning in Pandas

Beim Upgrade von Pandas von 0.11 auf 0.13.0rc1 können Benutzer auf zahlreiche SettingWithCopyWarning-Meldungen stoßen. Ein solches Beispiel ist:

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
Nach dem Login kopieren

Verstehen der Warnung

Die SettingWithCopyWarning-Flags kennzeichnen potenziell verwirrende „verkettete“ Zuweisungen wie:

df[df['A'] > 2]['B'] = new_val  # new_val not set in df
Nach dem Login kopieren

Dies funktioniert nicht immer so erwartet, insbesondere wenn die erste Auswahl eine Kopie zurückgibt. Um dieses Problem zu beheben, verwenden Sie Folgendes:

df.loc[df['A'] > 2, 'B'] = new_val
Nach dem Login kopieren

Beheben der Warnung im bereitgestellten Code

Im bereitgestellten Codeausschnitt:

quote_df['TVol']   = quote_df['TVol']/TVOL_SCALE
Nach dem Login kopieren

Sie führen effektiv Folgendes aus: verkettete Zuweisung äquivalent zu:

quote_df = quote_df[quote_df['A'] > 2]
quote_df['TVol'] = new_val
Nach dem Login kopieren

Dieses Muster kann nicht vom Negativbeispiel unterschieden werden und löst das aus Warnung.

Warnung deaktivieren

Wenn Sie sicher sind, dass sich die Schreibvorgänge nicht auf den Originalrahmen auswirken, deaktivieren Sie die Warnung mit:

import pandas as pd
pd.options.mode.chained_assignment = None  # default='warn'
Nach dem Login kopieren

Zusätzliche Informationen

Weiteres Verständnis finden Sie in diesen Ressourcen:

  • Pandas-Benutzerhandbuch: Indizieren und Auswählen Daten
  • Python Data Science Handbook: Datenindizierung und -auswahl
  • Real Python: SettingWithCopyWarning in Pandas
  • Dataquest: SettingwithCopyWarning: So beheben Sie diese Warnung in Pandas
  • Auf dem Weg zur Datenwissenschaft: Erläutern des SettingWithCopyWarning in Pandas

Das obige ist der detaillierte Inhalt vonWie kann ich mit SettingWithCopyWarning von Pandas effektiv umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage