„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 05.11.2024
Durchsuche:193

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:

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)

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 Funktion np.where von NumPy empfohlen:

df['C'] = np.where(
    df['A'] == df['B'], 0, np.where(
    df['A'] > df['B'], 1, -1))

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

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

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729378216 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3