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!