Comment ajouter efficacement plusieurs colonnes à un Pandas DataFrame en une seule affectation ?

Susan Sarandon
Libérer: 2024-10-25 13:06:02
original
957 Les gens l'ont consulté

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

Ajout de plusieurs colonnes aux DataFrames Pandas en une seule affectation

Dans Pandas, l'ajout simultané de plusieurs colonnes peut être réalisé de différentes manières. Une approche consiste à attribuer des valeurs à chaque colonne individuellement, mais cela peut devenir fastidieux pour plusieurs colonnes. Une méthode plus efficace consiste à ajouter les colonnes en une seule étape.

À première vue, l'attribution d'une liste ou d'un tableau à plusieurs nouvelles colonnes à l'aide de la syntaxe de liste de colonnes (par exemple, df[['new1', 'new2 ]] = [scalaire, scalaire]) peut sembler intuitif. Cependant, cette affectation ne fonctionne que pour les colonnes existantes.

Pour ajouter de nouvelles colonnes et attribuer des valeurs en une seule opération, vous pouvez utiliser plusieurs approches :

1. Déballage de l'itérateur :

<code class="python">df['new1'], df['new2'], df['new3'] = np.nan, 'dogs', 3</code>
Copier après la connexion

Cette approche attribue des valeurs de manière itérative à chaque nouvelle colonne.

2. Extension DataFrame :

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

Cette méthode crée un DataFrame avec une seule ligne qui correspond à l'index du DataFrame d'origine, puis utilise la fonction concat de Pandas pour fusionner les nouvelles colonnes dans l'original.

3. Rejoindre un DataFrame temporaire :

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

Cette approche crée un DataFrame temporaire avec les nouvelles colonnes et valeurs, puis le joint au DataFrame d'origine.

4. Assignation de dictionnaire :

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

Cette méthode utilise un dictionnaire pour créer un DataFrame temporaire qui est ensuite joint au DataFrame d'origine.

5. Méthode .assign() :

<code class="python">df = df.assign(new1=np.nan, new2='dogs', new3=3)</code>
Copier après la connexion

La méthode .assign() permet d'attribuer plusieurs colonnes à la fois.

6. Créer des colonnes et attribuer des valeurs :

<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>
Copier après la connexion

Cette technique crée des colonnes vides et attribue des valeurs séparément.

Attributions individuelles multiples :

<code class="python">df['new1'] = np.nan
df['new2'] = 'dogs'
df['new3'] = 3</code>
Copier après la connexion

Bien qu'elles ne soient pas aussi efficaces que les autres méthodes, les affectations individuelles sont simples et peuvent être utilisées pour un petit nombre de nouvelles colonnes.

Le meilleur choix dépend des exigences spécifiques et des considérations de performances. Pour ajouter plusieurs colonnes simultanément, les approches d'expansion DataFrame ou de jointure DataFrame temporaire offrent une solution concise et efficace.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!