Ich habe einen einfachen DataFrame wie den folgenden:
Ich möchte alle Werte aus der Spalte "Erste Staffel" auswählen und diejenigen, die über 1990 liegen, durch 1 ersetzen. In diesem Beispiel würde nur Baltimore Ravens das 1996 durch 1 ersetzen (wobei der Rest der Daten intakt bleibt).
Ich habe folgendes verwendet:
df.loc[(df['First Season'] > 1990)] = 1
Es werden jedoch alle Werte in dieser Zeile durch 1 ersetzt und nicht nur die Werte in der Spalte "Erste Staffel".
Wie kann ich nur die Werte aus dieser Spalte ersetzen?
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
. Was ich versuche zu tun, ist im Grundedf['A'] = np.where(df['B'] in some_values, df['A']*2, df['A]
. Hat jemand eine Idee dazu?seltsam, dass niemand diese Antwort hat, der einzige fehlende Teil Ihres Codes ist die ['Erste Staffel'] direkt nach df und entfernen Sie einfach Ihre geschweiften Klammern darin.
quelle
für einzelne Bedingung, dh.
( 'employrate'] > 70 )
benutze das:
Daher lautet die Syntax hier:
Für mehrere Bedingungen dh.
(df['employrate'] <=55) & (df['employrate'] > 50)
benutze das:
Daher lautet die Syntax hier:
quelle
Erläuterung:
df.loc
akzeptiert zwei Argumente, 'Zeilenindex' und 'Spaltenindex'. Wir prüfen in der Spalte "Erste Saison", ob der Wert größer als 27 jedes Zeilenwerts ist, und ersetzen ihn dann durch 1.quelle