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
Mary-Kate OlsenOriginal
2024-12-14 03:23:10530Durchsuche

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>
<pre class="brush:php;toolbar:false">      a         b         c         d

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)

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)

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)

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!

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