Heim >Backend-Entwicklung >Python-Tutorial >Wie führe ich die Erstellung bedingter Spalten in Pythons Pandas DataFrames durch?
Erstellen einer Spalte basierend auf bedingter Logik in Python
Bei der Arbeit mit Pandas DataFrames stoßen wir oft auf Szenarien, in denen wir eine neue erstellen müssen Spalte basierend auf einer bedingten Prüfung zwischen vorhandenen Spalten. Dies kann mithilfe der Funktion np.where mit verschachtelten Bedingungen erreicht werden.
Betrachten Sie zur Veranschaulichung den folgenden DataFrame:
<code class="python">import pandas as pd df = pd.DataFrame({ "A": [2, 3, 1], "B": [2, 1, 3] })</code>
Wir möchten eine neue Spalte C basierend auf den folgenden Kriterien erstellen :
Verwenden einer benutzerdefinierten Funktion
Ein Ansatz besteht darin, eine benutzerdefinierte Funktion zu erstellen, die die bedingte Logik implementiert, und sie auf die anzuwenden DataFrame:
<code class="python">def f(row): if row['A'] == row['B']: return 0 elif row['A'] > row['B']: return 1 else: return -1 df['C'] = df.apply(f, axis=1)</code>
Verwendung von np.where
Alternativ können wir die Funktion np.where verwenden, um der neuen Spalte Werte direkt zuzuweisen:
<code class="python">df['C'] = np.where(df['A'] == df['B'], 0, np.where(df['A'] > df['B'], 1, -1))</code>
Dieser Ansatz ist vektorisiert und für große Datensätze effizienter.
Ergebnis:
Beide Ansätze führen zu folgendem Ergebnis:
<code class="python">print(df) A B C 0 2 2 0 1 3 1 1 2 1 3 -1</code>
Das obige ist der detaillierte Inhalt vonWie führe ich die Erstellung bedingter Spalten in Pythons Pandas DataFrames durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!