Skip to content

Ajouter une nouvelle colonne à un DataFrame Pandas (avec exemples et bonnes pratiques)

Updated on

L’ajout de nouvelles colonnes est l’une des opérations les plus courantes lorsque vous travaillez avec des DataFrames Pandas. Que vous créiez un champ calculé, insériez une colonne à un emplacement précis ou construisiez un DataFrame de manière dynamique, Pandas propose plusieurs techniques puissantes pour y parvenir facilement.

Ce guide mis à jour pour 2025 couvre :

  • Les 6 meilleures façons d’ajouter une nouvelle colonne
  • Quand utiliser chaque méthode
  • Ajouter des colonnes à partir de données existantes
  • Éviter les erreurs courantes (par ex. SettingWithCopyWarning)
  • Des exemples issus de cas réels

⭐ Astuce rapide : transformer votre DataFrame en outil d’analyse visuelle

Vous voulez visualiser instantanément votre DataFrame ?

PyGWalker convertit n’importe quel DataFrame Pandas ou Polars en interface interactive de type Tableau directement dans Jupyter Notebook.

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
KaggleColabGitHub
Run PyGWalker in Kaggle (opens in a new tab)Run in Google Colab (opens in a new tab)Give us a ⭐️ (opens in a new tab)

Qu’est‑ce qu’un DataFrame Pandas ?

Un DataFrame est un tableau à 2 dimensions étiqueté (lignes + colonnes) similaire à un tableau Excel ou SQL. Pandas vous permet de créer des DataFrames à partir de :

  • CSV
  • Excel
  • SQL
  • JSON
  • Listes et dictionnaires Python

Et fournit des API puissantes pour les manipuler et les analyser.


📌 Comment ajouter une nouvelle colonne dans Pandas (vue d’ensemble rapide)

MéthodeIdéale pourExemple
1. Assignation (df['col'] = ...)Cas les plus courants/simplesdf['salary'] = ...
2. Insertion (df.insert)Insérer à un index précisdf.insert(1, 'x', ...)
3. assignMethod chainingdf = df.assign(x=...)
4. pd.concatAjouter plusieurs colonnespd.concat([df, df2], axis=1)
5. Basée sur des colonnes existantesTransformations réellesdf['age2'] = df['age'] * 2
6. Colonnes conditionnellesLogique if‑elsenp.where(...)

Voyons chaque méthode avec des exemples.


1. Méthode : assignation simple (meilleure pour la plupart des cas)

df['NewColumn'] = [1, 2, 3, 4]

▶ Exemple

df['Salary'] = [50000, 60000, 70000, 80000]

Quand l’utiliser :

  • Méthode la plus courante et la plus simple
  • Ajouter des valeurs constantes, listes, tableaux ou résultats calculés

Remarques :

  • Écrase la colonne si elle existe déjà
  • Très efficace

2. Méthode : insérer une colonne à une position spécifique (df.insert)

df.insert(loc=1, column='Department', value=['IT', 'HR', 'Finance', 'Admin'])

À utiliser lorsque :

  • Vous voulez un ordre de colonnes précis
  • Utile pour les rapports et l’export de données structurées

3. Méthode : ajouter une colonne avec assign (style fonctionnel / chaining)

df = df.assign(Tax=lambda x: x['Salary'] * 0.1)

Avantages :

  • Adaptée au method chaining
  • Ne modifie pas le DataFrame d’origine sauf si vous réassignez le résultat

4. Méthode : ajouter des colonnes avec pd.concat

df2 = pd.DataFrame({'Bonus': [1000, 2000, 2500, 1800]})
df = pd.concat([df, df2], axis=1)

À utiliser lorsque :

  • Vous concaténez plusieurs nouvelles colonnes
  • Vous souhaitez combiner deux DataFrames

À éviter lorsque :

  • Vous ajoutez une seule colonne → l’assignation est plus rapide

5. Ajouter une colonne à partir de colonnes existantes (exemple réel)

C’est le cas d’usage n°1 — souvent absent des articles d’introduction.

Exemple : créer un score total

df['Total'] = df['Math'] + df['Science'] + df['English']

Exemple : normaliser une valeur

df['Age_Norm'] = df['Age'] / df['Age'].max()

6. Colonnes conditionnelles (np.where ou masques booléens)

Exemple : ajouter un indicateur "Senior"

import numpy as np
df['Senior'] = np.where(df['Age'] >= 35, 'Yes', 'No')

Version avec masque booléen

df['IsAdult'] = df['Age'] > 18

À utiliser lorsque :

  • Vous créez des étiquettes de classification
  • Vous appliquez des conditions binaires

Écraser une colonne existante

Oui — une assignation simple écrase la colonne :

df['Age'] = [26, 31, 36, 41]

Insérer une colonne à une position donnée en utilisant le nom de colonne

df.insert(df.columns.get_loc("Age"), 'Score', [1, 2, 3, 4])

Utile lorsque l’ordre des colonnes dépend de noms existants (par ex. pipelines automatiques).


⚠ Erreur courante à éviter : SettingWithCopyWarning

Si vous découpez un DataFrame de manière incorrecte :

subset = df[df['Age'] > 30]
subset['Flag'] = 1   # Warning!

Correction :

subset = df[df['Age'] > 30].copy()
subset['Flag'] = 1

Conclusion

Vous connaissez maintenant les 6 méthodes essentielles pour ajouter de nouvelles colonnes dans Pandas :

  • Assignation simple (meilleur choix par défaut)
  • Méthode insert pour un ordre précis
  • Méthode assign pour le chaining
  • concat pour combiner des DataFrames
  • Colonnes basées sur des calculs
  • Colonnes basées sur une logique conditionnelle

Ces techniques vous aident à manipuler efficacement vos DataFrames tout en évitant les pièges courants.


FAQ (pour le SEO et l’assistance aux utilisateurs)

1. Comment ajouter une colonne avec la même valeur pour toutes les lignes ?

df['Source'] = 'System'

2. Comment ajouter une colonne basée sur une fonction ?

df['Score'] = df.apply(lambda x: x['Math'] * 0.6 + x['English'] * 0.4, axis=1)

3. Comment ajouter plusieurs colonnes en une fois ?

df[['A', 'B']] = df[['X', 'Y']] * 2

4. Quelle est la méthode la plus rapide ?

L’assignation simple (df['col'] = ...) est généralement la plus efficace.