Maison  >  Article  >  développement back-end  >  Comment ajouter efficacement plusieurs colonnes à un DataFrame Pandas simultanément ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 12:36:02286parcourir

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>

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>

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>

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>

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>

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>

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>

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>

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>

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!

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