Heim > Backend-Entwicklung > Python-Tutorial > Wie füge ich effizient eine neue Spalte zu einem Pandas DataFrame hinzu?

Wie füge ich effizient eine neue Spalte zu einem Pandas DataFrame hinzu?

Mary-Kate Olsen
Freigeben: 2024-12-14 03:23:10
Original
530 Leute haben es durchsucht

How to Efficiently Add a New Column to a Pandas DataFrame?

So fügen Sie einem vorhandenen DataFrame eine neue Spalte hinzu

Problemstellung

Bei einem DataFrame mit indizierten Zeilen möchten Sie eine zusätzliche Spalte einbinden ohne die vorhandenen Daten zu verändern. Zum Beispiel mit dem DataFrame:

</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">      a         b         c         d
Nach dem Login kopieren

2 0,671399 0,101208 -0,181532 0,241273
3 0,446172 -0,243316 0,051767 1,577318
5 0,614758 0,075793 -0,451460 -0,012493

Fügen Sie eine Spalte namens „e“ mit den folgenden Werten hinzu:

<br> 0 -0,335485<br>1 -1,166658<br>2 -0,385571<br>dtype: float64<br>

Lösung

Bearbeiten 2017

Die effizienteste Methode, wie von @Alexander vorgeschlagen und in den Kommentaren angegeben, ist die Verwendung der Methode assign:

df1 = df1.assign(e=pd.Series(np.random.randn(sLength)).values)
Nach dem Login kopieren

Bearbeiten 2015

Einige Benutzer berichteten von der Begegnung mit dem SettingWithCopyWarning mit dem Originalcode. Der Code bleibt jedoch in der aktuellen Pandas-Version 0.16.1 funktionsfähig.

sLength = len(df1['a'])

df1['e'] = pd.Series(np.random.randn(sLength), index=df1.index)
Nach dem Login kopieren

Originalantwort

Erstellen Sie eine Serie mit den Originalindizes von df1 und weisen Sie sie zu in die neue Spalte:

df1['e'] = pd.Series(np.random.randn(sLength), index=df1.index)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie füge ich effizient eine neue Spalte 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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage