Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führe ich die Erstellung bedingter Spalten in Pythons Pandas DataFrames durch?

Wie führe ich die Erstellung bedingter Spalten in Pythons Pandas DataFrames durch?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 06:48:29664Durchsuche

How to Perform Conditional Column Creation in Python's Pandas DataFrames?

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 :

  • Wenn A gleich B ist, sollte C 0 sein.
  • Wenn A größer als B ist, sollte C 1 sein.
  • Wenn A kleiner als B ist , C sollte -1 sein.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn