In Pandas kann es vorkommen, dass Sie mehrere neue Spalten basierend auf einer benutzerdefinierten Funktion erstellen müssen, die auf eine Funktion angewendet wird vorhandene Spalte. Die Aufgabe mag unkompliziert erscheinen, aber aufgrund des erwarteten Rückgabetyps der Funktion können unerwartete Herausforderungen auftreten.
Zunächst könnten Sie versuchen, die Ausgabe von zuzuweisen eine Funktion direkt zu einem Bereich von Indizes in einem DataFrame mithilfe der Syntax df.ix[: ,10:16] = df.textcol.map(extract_text_features). Allerdings kann dieser Ansatz aufgrund des inkompatiblen Rückgabetyps der Funktion häufig zu Fehlern führen.
Eine mögliche Lösung besteht darin, mit df.iterrows( über jede Zeile des DataFrame zu iterieren. ). Mit dieser Methode können Sie die Funktion auf jede Zeile einzeln anwenden und die Ergebnisse als Tupel erfassen. Dieser Ansatz kann jedoch deutlich langsamer sein als andere Optionen.
Ein effizienterer und flexiblerer Ansatz besteht darin, die Funktion zip() in Verbindung mit map() zum Erstellen zu verwenden die neuen Spalten. Die Funktion zip() fasst die Ausgabe der Funktion zu einem Tupel zusammen, das dann in einzelne Spalten entpackt werden kann. Der folgende Code zeigt beispielsweise, wie man mit der zip()-Methode sechs neue Spalten erstellt:
<code class="python">df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))</code>
Die jüngsten Updates für Pandas haben praktischere Methoden zum Anwenden von Funktionen eingeführt in Spalten und Erstellen neuer Spalten. Mit der Methode df.apply() können Sie beispielsweise das Ausgabeformat (DataFrame, Serie oder Liste) angeben und zusätzliche Parameter verarbeiten. Darüber hinaus können Sie mit der Methode df.assign() direkt neue Spalten erstellen, ohne die Ausgabe explizit zuzuweisen. Diese neueren Methoden bieten mehr Flexibilität und Effizienz beim Erstellen mehrerer neuer Spalten basierend auf einer Funktion.
Das obige ist der detaillierte Inhalt vonWie kann man in Pandas effizient mehrere neue Spalten aus einer Funktion erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!