Comment ajouter efficacement plusieurs colonnes à un DataFrame Pandas simultanément ?

Linda Hamilton
Libérer: 2024-10-25 12:36:02
original
212 Les gens l'ont consulté

How to Efficiently Add Multiple Columns to a Pandas DataFrame Simultaneously?

Ajout simultané de plusieurs colonnes à un DataFrame Pandas

Dans la manipulation de données Pandas, l'ajout efficace de plusieurs nouvelles colonnes à un DataFrame peut être une tâche qui nécessite une solution élégante. Bien que l'approche intuitive consistant à utiliser la syntaxe de liste de colonnes avec un signe égal puisse sembler simple, elle peut conduire à des résultats inattendus.

Le défi

Comme illustré dans l'exemple fourni, la syntaxe suivante ne parvient pas à créer les nouvelles colonnes comme prévu :

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

Cela est dû au fait que Pandas exige que le côté droit de l'affectation soit un DataFrame lors de l'utilisation de la syntaxe de liste de colonnes. Les valeurs ou listes scalaires ne sont pas compatibles avec cette approche.

Solutions

Plusieurs méthodes alternatives offrent des solutions viables pour ajouter plusieurs colonnes simultanément :

Méthode 1 : affectations individuelles Utilisation du déballage de l'itérateur

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

Méthode 2 : développer une seule ligne pour correspondre à l'index

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

Méthode 3 : combiner avec un DataFrame temporaire à l'aide pd.concat

<code class="python">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
)</code>
Copier après la connexion

Méthode 4 : combiner avec un DataFrame temporaire à l'aide de .join

<code class="python">df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))</code>
Copier après la connexion

Méthode 5 : utiliser le dictionnaire pour le temporaire DataFrame

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

Méthode 6 : utilisez .assign() avec plusieurs arguments de colonnes

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

Méthode 7 : créez des colonnes, puis Attribuer des valeurs

<code class="python">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</code>
Copier après la connexion

Méthode 8 : affectations séquentielles multiples

<code class="python">df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3</code>
Copier après la connexion

Le choix de la méthode la plus appropriée dépendra de facteurs tels que la taille du DataFrame, le nombre de nouvelles colonnes à ajouter et les exigences de performance de la tâche. Néanmoins, ces techniques offrent aux utilisateurs de Pandas diverses options pour ajouter efficacement plusieurs colonnes à leurs DataFrames.

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!