Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man in Pandas effizient mehrere neue Spalten aus einer Funktion erstellen?

Wie kann man in Pandas effizient mehrere neue Spalten aus einer Funktion erstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-28 20:58:02105Durchsuche

How to Efficiently Create Multiple New Columns from a Function in Pandas?

Erstellen mehrerer neuer Spalten aus einer Funktion mit Pandas

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.

Ursprünglicher Ansatz: Zuweisen zum Indexbereich

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.

Iterierbare Lösung

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.

Verwendung von zip()

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>

Verbesserte DataFrame-Methoden

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!

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