„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 > 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?

Veröffentlicht am 07.11.2024
Durchsuche:928

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 einfach 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 df.ix[: ,10:16] = df.textcol.map(extract_text_features)-Syntax. 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 erheblich langsamer sein als andere Optionen.

Zip() verwenden

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:

df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))

Verbesserte DataFrame-Methoden

Die jüngsten Updates für Pandas haben praktischere Methoden zum Anwenden von Funktionen auf Spalten und zum Erstellen neuer Spalten eingeführt. 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.

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