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

Wie füge ich in einer einzigen Zuweisung effizient mehrere Spalten zu einem Pandas DataFrame hinzu?

Susan Sarandon
Susan SarandonOriginal
2024-10-25 13:06:02950Durchsuche

How to efficiently add multiple columns to a Pandas DataFrame in a single assignment?

Hinzufügen mehrerer Spalten zu Pandas-DataFrames in einer einzigen Zuweisung

In Pandas kann das gleichzeitige Hinzufügen mehrerer Spalten auf verschiedene Arten erreicht werden. Ein Ansatz besteht darin, jeder Spalte einzeln Werte zuzuweisen, was jedoch bei mehreren Spalten mühsam sein kann. Eine effizientere Methode besteht darin, die Spalten in einem Schritt hinzuzufügen.

Auf den ersten Blick ist die Zuweisung einer Liste oder eines Arrays zu mehreren neuen Spalten mithilfe der Spaltenlistensyntax (z. B. df[['new1', 'new2 ]] = [Skalar, Skalar]) mag intuitiv erscheinen. Diese Zuweisung funktioniert jedoch nur für vorhandene Spalten.

Um neue Spalten hinzuzufügen und Werte in einem einzigen Vorgang zuzuweisen, können Sie mehrere Ansätze verwenden:

1. Iterator-Entpacken:

<code class="python">df['new1'], df['new2'], df['new3'] = np.nan, 'dogs', 3</code>

Dieser Ansatz weist jeder neuen Spalte iterativ Werte zu.

2. DataFrame-Erweiterung:

<code class="python">df[['new1', 'new2', 'new3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)</code>

Diese Methode erstellt einen DataFrame mit einer einzelnen Zeile, die dem Index des ursprünglichen DataFrame entspricht, und verwendet dann die Concat-Funktion von Pandas, um die neuen Spalten mit dem Original zusammenzuführen.

3. Temporäre DataFrame-Verbindung:

<code class="python">df = pd.concat([df, pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index, columns=['new1', 'new2', 'new3'])], axis=1)</code>

Dieser Ansatz erstellt einen temporären DataFrame mit den neuen Spalten und Werten und verbindet ihn dann mit dem ursprünglichen DataFrame.

4. Wörterbuchzuweisung:

<code class="python">df = df.join(pd.DataFrame({'new1': np.nan, 'new2': 'dogs', 'new3': 3}, index=df.index))</code>

Diese Methode verwendet ein Wörterbuch, um einen temporären DataFrame zu erstellen, der dann mit dem ursprünglichen DataFrame verbunden wird.

5. .assign()-Methode:

<code class="python">df = df.assign(new1=np.nan, new2='dogs', new3=3)</code>

Die .assign()-Methode ermöglicht die gleichzeitige Zuweisung mehrerer Spalten.

6. Spalten erstellen und Werte zuweisen:

<code class="python">new_cols = ['new1', 'new2', 'new3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)
df[new_cols] = new_vals</code>

Diese Technik erstellt leere Spalten und weist Werte separat zu.

Mehrere Einzelzuweisungen:

<code class="python">df['new1'] = np.nan
df['new2'] = 'dogs'
df['new3'] = 3</code>

Einzelne Zuweisungen sind zwar nicht so effizient wie die anderen Methoden, aber unkompliziert und können für eine kleine Anzahl neuer Spalten verwendet werden.

Die beste Wahl hängt von den spezifischen Anforderungen und Leistungsüberlegungen ab. Für das gleichzeitige Hinzufügen mehrerer Spalten bieten die DataFrame-Erweiterung oder temporäre DataFrame-Join-Ansätze eine präzise und effiziente Lösung.

Das obige ist der detaillierte Inhalt vonWie füge ich in einer einzigen Zuweisung effizient mehrere Spalten 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