Maison >développement back-end >Tutoriel Python >Comment ajouter efficacement une nouvelle colonne à un DataFrame Pandas ?

Comment ajouter efficacement une nouvelle colonne à un DataFrame Pandas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-14 03:23:10531parcourir

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

Comment ajouter une nouvelle colonne à un DataFrame existant

Énoncé du problème

Étant donné un DataFrame avec des lignes indexées, vous souhaitez incorporer une colonne supplémentaire sans modifier les données existantes. Par exemple, étant donné le 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

Ajoutez une colonne nommée 'e' avec les valeurs suivantes :

<br> 0 -0.335485<br>1 -1.166658<br>2 -0.385571<br>dtype: float64<br>

Solution

Modifier 2017

La méthode la plus efficace, comme suggérée par @Alexander et indiquée dans les commentaires, est d'utiliser la méthode assign :

df1 = df1.assign(e=pd.Series(np.random.randn(sLength)).values)

Edit 2015

Certains utilisateurs ont signalé avoir rencontré le SettingWithCopyWarning avec le code d'origine. Cependant, le code reste fonctionnel dans la version actuelle de pandas, 0.16.1.

sLength = len(df1['a'])

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

Réponse originale

Créez une série en utilisant les index d'origine de df1 et attribuez dans la nouvelle colonne :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn