Wie füge ich effizient mehrere Spalten gleichzeitig zu einem Pandas-DataFrame hinzu?

Linda Hamilton
Freigeben: 2024-10-25 12:36:02
Original
212 Leute haben es durchsucht

How to Efficiently Add Multiple Columns to a Pandas DataFrame Simultaneously?

Gleichzeitiges Hinzufügen mehrerer Spalten zu einem Pandas-DataFrame

Bei der Pandas-Datenbearbeitung kann das effiziente Hinzufügen mehrerer neuer Spalten zu einem DataFrame eine Aufgabe sein, die eine elegante Lösung erfordert. Obwohl der intuitive Ansatz, die Spaltenlistensyntax mit einem Gleichheitszeichen zu verwenden, einfach erscheinen mag, kann er zu unerwarteten Ergebnissen führen.

Die Herausforderung

Wie im bereitgestellten Beispiel dargestellt, die folgende Syntax erstellt die neuen Spalten nicht wie beabsichtigt:

<code class="python">df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]</code>
Nach dem Login kopieren

Dies liegt daran, dass Pandas bei Verwendung der Spaltenlistensyntax erfordert, dass die rechte Seite der Zuweisung ein DataFrame ist. Skalare Werte oder Listen sind mit diesem Ansatz nicht kompatibel.

Lösungen

Mehrere alternative Methoden bieten praktikable Lösungen für das gleichzeitige Hinzufügen mehrerer Spalten:

Methode 1: Individuelle Zuweisungen Verwenden des Iterator-Entpackens

<code class="python">df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3</code>
Nach dem Login kopieren

Methode 2: Einzelne Zeile erweitern, um sie mit dem Index abzugleichen

<code class="python">df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)</code>
Nach dem Login kopieren

Methode 3: Mit temporärer DataFrame-Verwendung kombinieren pd.concat

<code class="python">df = pd.concat(
    [
        df,
        pd.DataFrame(
            [[np.nan, 'dogs', 3]], 
            index=df.index, 
            columns=['column_new_1', 'column_new_2', 'column_new_3']
        )
    ], axis=1
)</code>
Nach dem Login kopieren

Methode 4: Mit temporärem DataFrame kombinieren unter Verwendung von .join

<code class="python">df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))</code>
Nach dem Login kopieren

Methode 5: Wörterbuch für Temporär verwenden DataFrame

<code class="python">df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))</code>
Nach dem Login kopieren

Methode 6: Verwenden Sie .assign() mit mehreren Spaltenargumenten

<code class="python">df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)</code>
Nach dem Login kopieren

Methode 7: Erstellen Sie dann Spalten Werte zuweisen

<code class="python">new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)    # add empty cols
df[new_cols] = new_vals        # multi-column assignment works for existing cols</code>
Nach dem Login kopieren

Methode 8: Mehrere sequentielle Zuweisungen

<code class="python">df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3</code>
Nach dem Login kopieren

Die Auswahl der am besten geeigneten Methode hängt von Faktoren wie der Größe des DataFrame, die Anzahl der neuen Spalten, die hinzugefügt werden sollen, und die Leistungsanforderungen der Aufgabe. Nichtsdestotrotz bieten diese Techniken Pandas-Benutzern vielfältige Optionen zum effizienten Hinzufügen mehrerer Spalten zu ihren DataFrames.

Das obige ist der detaillierte Inhalt vonWie füge ich effizient mehrere Spalten gleichzeitig zu einem Pandas-DataFrame hinzu?. 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!