Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich effizient mehrere Spalten gleichzeitig zu einem Pandas-DataFrame hinzu?

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

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 12:36:02204Durchsuche

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>

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>

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>

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>

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>

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>

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>

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>

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>

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!

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