Verwendung von loc zu aktualisieren dataframe python pandas

Habe ich ein pandas dataframe (df) mit der Spalten-Struktur :

month a b c d

dieser dataframe Daten für sagen Jan, Feb, Mar, Apr. A,B,C,D sind numerische Spalten. Für den Monat Februar möchte ich die Neuberechnung Spalte Ein und aktualisieren Sie es in den dataframe D. H. für month = Feb, A = B + C + D

Code, den ich verwendet :

 df[df['month']=='Feb']['A']=df[df['month']=='Feb']['B'] + df[df['month']=='Feb']['C'] + df[df['month']=='Feb']['D'] 

Diese lief ohne Fehler, aber nicht ändern Sie die Werte in Spalte A für den Monat Feb. In der Konsole, gab es eine Meldung, dass :

Einen Wert versucht zu werden, auf eine Kopie von einer Scheibe aus einem DataFrame.

Versuchen Sie es mit .loc[row_indexer,col_indexer] = Wert statt

Habe ich versucht zu verwenden .loc aber jetzt das dataframe ich auf Arbeit bin, hatte ich .reset_index() auf, und ich bin nicht sicher, wie Sie Sie festlegen index und benutzen .loc. Ich folgte Dokumentation aber nicht klar. Könnten Sie mir bitte helfen hier?
Dies ist ein Beispiel dataframe :

 import pandas as pd import numpy as np
 dates = pd.date_range('1/1/2000', periods=8)
 df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D']) 

Ich aktualisieren möchten sagen, ein Datum : 2000-01-03. Ich bin nicht in der Lage zu geben, das snippet von meinen Daten, Echtzeit-Daten.

  • könnte, fügen Sie ein kleines Beispiel, Ihre dataframe?
  • Der dataframe ich arbeite, ist groß, ich habe versucht zu erklären, die Logik hier . Ich werde sehen, wenn ich kann jede dataframe
  • Sie befestigen konnte, der wie ein Teil von Ihr dataframe mit df.head() oder df.iloc[:10, :10]
  • Warum nicht einfach df['a'] = df.b + df.c + df.d? Sie müssen die Beispiel-Daten, um zu klären, was Sie versuchen zu tun, und produzieren eine MVE. stellen
  • Anton und Alexander : Dies ist ein Beispiel dataframe : import pandas as pd import numpy as np Termine = pd.date_range('1/1/2000', Punkte=8) df = pd.DataFrame(np.random.randn(8, 4), index=Termine, Spalten=['A', 'B', 'C', 'D']) ich will zum update sagen-Datum : 2000-01-03. Ich bin nicht in der Lage zu geben, das snippet von meinen Daten, Echtzeit-Daten.
  • für die Zukunft ist es besser, zu aktualisieren Sie Ihre Frage mit Ihren Daten nicht in den Kommentar

Schreibe einen Kommentar