Heim >Backend-Entwicklung >Python-Tutorial >So erreichen Sie die Erstellung bedingter Spalten: Erkunden Sie If-Elif-Else in Pandas DataFrame?

So erreichen Sie die Erstellung bedingter Spalten: Erkunden Sie If-Elif-Else in Pandas DataFrame?

Susan Sarandon
Susan SarandonOriginal
2024-10-20 06:52:29822Durchsuche

How to Achieve Conditional Column Creation: Exploring If-Elif-Else in Pandas DataFrame?

Erstellen einer bedingten Spalte: If-Elif-Else in Pandas

Das gegebene Problem fordert das Hinzufügen einer neuen Spalte zu einem DataFrame basierend auf einer Reihe von bedingten Kriterien. Die Herausforderung besteht darin, diese Bedingungen zu implementieren und gleichzeitig die Effizienz und Lesbarkeit des Codes aufrechtzuerhalten.

Lösung mit Funktionsanwendung

Ein Ansatz besteht darin, eine Funktion zu erstellen, die jede Zeile dem gewünschten Ergebnis zuordnet basierend auf den Bedingungen:

<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>

Diese Methode ist lesbar und einfach zu implementieren, aber sie ist nicht vektorisiert und kann bei großen Datensätzen zu Leistungsproblemen führen.

Vektorisierte Lösung

Aus Effizienzgründen wird ein vektorisierter Ansatz mit der np.where-Funktion von NumPy empfohlen:

<code class="python">df['C'] = np.where(
    df['A'] == df['B'], 0, np.where(
    df['A'] > df['B'], 1, -1))</code>

Diese Operation führt die bedingte Auswahl elementweise auf dem DataFrame durch, was zu einer neuen Spalte führt mit den gewünschten Werten.

Dieser vektorisierte Ansatz bietet erhebliche Leistungsvorteile im Vergleich zur funktionsbasierten Methode. Es ermöglicht auch eine prägnantere und lesbarere Umsetzung der Bedingungskriterien.

Das obige ist der detaillierte Inhalt vonSo erreichen Sie die Erstellung bedingter Spalten: Erkunden Sie If-Elif-Else in Pandas DataFrame?. 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