Comment ajouter plusieurs colonnes en même temps dans une dataframe avec pandas ?


Exemples de comment ajouter plusieurs colonnes en même temps dans une dataframe avec pandas

Créez un dataframe avec pandas

Créons une dataframe avec pandas:

import pandas as pd
import numpy as np

data = np.random.randint(10, size=(5,3))

columns = ['Score A','Score B','Score C']

df = pd.DataFrame(data=data,columns=columns)

print(df)

donne par exemple

   Score A  Score B  Score C
0        1        5        5
1        3        9        2
2        5        9        3
3        8        6        2
4        4        7        6

Ajouter une nouvelle colonne

Rappel: pour ajouter une seule colonne à un dataframe, une solution simple est de faire comme ceci:

data = np.random.randint(10, size=(5,1))

df['Score D'] = data

print(df)

donne

   Score A  Score B  Score C  Score D
0        1        5        5        1
1        3        9        2        8
2        5        9        3        0
3        8        6        2        4
4        4        7        6        2

Ajouter plusieurs colonnes

Pour ajouter plusieurs colonnes en même temps, une solution consiste à utiliser pandas.concat:

data = np.random.randint(10, size=(5,2))

columns = ['Score E','Score F']

df_add = pd.DataFrame(data=data,columns=columns)

print(df)

df = pd.concat([df,df_add], axis=1)

print(df)

donne

   Score A  Score B  Score C  Score D  Score E  Score F
0        1        5        5        1        4        3
1        3        9        2        8        7        3
2        5        9        3        0        7        0
3        8        6        2        4        5        7
4        4        7        6        2        6        4

Supprimer les colonnes en double

Remarque: si vous appliquez à nouveau concat:

df = pd.concat([df,df_add], axis=1)

il ajoutera à nouveau les nouvelles colonnes:

   Score A  Score B  Score C  Score D  Score E  Score F  Score E  Score F
0        1        5        5        1        4        3       4        3
1        3        9        2        8        7        3        7        3
2        5        9        3        0        7        0        7        0
3        8        6        2        4        5        7        5        7
4        4        7        6        2        6        4        6        4

Pour supprimer la colonne du même nom, faites simplement:

df = df.loc[:,~df.columns.duplicated()]

donne

   Score A  Score B  Score C  Score D  Score E  Score F
0        1        5        5        1        4        3
1        3        9        2        8        7        3
2        5        9        3        0        7        0
3        8        6        2        4        5        7
4        4        7        6        2        6        4

Références