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 
  • Pandas, die multicolumnindex an dataframe anwenden
  • Anregung fehlender Werte für Kategorien in Pandas
  • Verknüpfen einer DataFrame- und Excel-Daten
  • Gewichteter gleitender Durchschnitt in Python
  • Pandas verwenden
  • Pandas: Aggregat, wenn Spalte numpy Arrays enthält
  • So aktualisieren Sie eine Teilmenge eines MultiIndexed-Pandas DataFrame
  • ARMAX-Modellvorhersage führt zu "ValueError: Matrizen werden nicht ausgerichtet" beim Übergeben von Exog-Werten
  • Wie wähle ich nur bestimmte Spalten aus einem DataFrame mit MultiIndex Spalten aus?
  • Erhalten Sie Werktage zwischen Start- und Enddatum mit Pandas
  • Wie kann man die Korrelation zwischen passenden Spalten von zwei Datensätzen überprüfen?
  • Python ist die beste Programmiersprache der Welt.