Df.loc verursacht eine Warnungsmeldung von SettingWithCopyWarning

Die folgende Zeile meines Codes verursacht eine Warnung:

import pandas as pd s = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) s.loc[-1] = [5,np.nan,np.nan,6] grouped = s.groupby(['A']) for key_m, group_m in grouped: group_m.loc[-1] = [10,np.nan,np.nan,10] C:\Anaconda3\lib\site-packages\ipykernel\__main__.py:10: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame 

Nach der Dokumentation ist dies die empfohlene Art zu tun, also was ist passiert?

Danke für Ihre Hilfe.

One Solution collect form web for “Df.loc verursacht eine Warnungsmeldung von SettingWithCopyWarning”

Die Dokumentation ist etwas verwirrend.

Dein dataframe ist eine Kopie eines anderen dataframe . Sie können dies überprüfen, indem Sie bool(df.is_copy) Sie erhalten die Warnung, weil Sie versuchen, diese Kopie zuzuweisen.

Die Warnung / Dokumentation sagt Ihnen, wie Sie df an erster Stelle konstruiert haben sollten. Nicht wie du dir jetzt zuordnen solltest, dass es eine Kopie ist.

 df = some_other_df[cols] 

Wird df eine Kopie von some_other_df . Die Warnung schlägt vor, dies zu tun

 df = some_other_df.loc[:, [cols]] 

Nun, da ist es getan, wenn du diese Warnung ignorierst, kannst du

 df = df.copy() 

oder

 df.is_copy = None 
  • Python-Pandas, bestimmte Spalten zu Zeilen
  • Python DatetimeIndex Error - TypeError: ("kann nicht Label-Indizierung auf <class 'pandas.tseries.index.DatetimeIndex'
  • Gruppieren und Filtern von Daten
  • Lesen von Datei eine hierarchische ascii Tabelle mit Pandas
  • Bin Zeitstempel in benutzerdefinierte Perioden
  • Datentyp der Pandas Spalte wechselt zum Objekt, wenn es an eine Funktion übergeben wird?
  • Python: Spalten von Trajektorien in Stufen
  • Warum arbeitet es mit Integer-Indexpositionen?
  • Vergleich eines Dataframs auf Stringlängen für verschiedene Spalten
  • Ermitteln Sie, ob ein Dataframe einen MultiIndex hat
  • Pandas read_fwf lädt nicht den gesamten Inhalt der Datei
  • Python ist die beste Programmiersprache der Welt.