Comment ajouter efficacement plusieurs colonnes à un DataFrame Pandas ?

DDD
Libérer: 2024-10-25 09:54:02
original
383 Les gens l'ont consulté

How to Efficiently Add Multiple Columns to a Pandas DataFrame?

Attribuer simultanément plusieurs colonnes au DataFrame Pandas

Dans le contexte de l'utilisation de dataframes dans Pandas, la question se pose de savoir comment ajouter efficacement plusieurs colonnes en une seule affectation.

Tentative initiale et ses inconvénients

De nombreux utilisateurs tentent naturellement d'utiliser la syntaxe suivante pour accomplir cette tâche :

df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]
Copier après la connexion

Cependant , cette approche échoue car Pandas exige que le côté droit soit un DataFrame lors de la création de nouvelles colonnes avec la syntaxe de liste de colonnes.

Approches alternatives

Plusieurs solutions viables exister pour atteindre le résultat souhaité. Voici quelques-unes des approches recommandées :

1. Affectations sur une seule colonne avec déballage d'itérateur

df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3
Copier après la connexion

2. Extension DataFrame avec Pandas.DataFrame()

df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)
Copier après la connexion

3. Concaténation avec Pandas.concat

df = pd.concat(
    [
        df,
        pd.DataFrame(
            [[np.nan, 'dogs', 3]], 
            index=df.index, 
            columns=['column_new_1', 'column_new_2', 'column_new_3']
        )
    ], axis=1
)
Copier après la connexion

4. Rejoignez Pandas.join

df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))
Copier après la connexion

5. Expansion du dictionnaire avec Pandas.join

df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))
Copier après la connexion

6. Arguments à plusieurs colonnes avec .assign()

df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)
Copier après la connexion

7. Création et attribution de colonnes

new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)  # add empty cols
df[new_cols] = new_vals  # multi-column assignment works for existing cols
Copier après la connexion

8. Missions séparées

df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3
Copier après la connexion

Le choix de l'approche dépend des exigences spécifiques de l'utilisateur. Pour des raisons de simplicité et d'efficacité, des missions distinctes peuvent souvent être la solution privilégiée. Cependant, si l'on souhaite ajouter plusieurs colonnes avec le même type ou la même valeur, les autres approches offrent flexibilité et concision.

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
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!