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

Linda Hamilton
Freigeben: 2024-10-28 20:58:02
Original
104 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!