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)| Kaggle | Colab | GitHub |
|---|---|---|
| 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éthode | Idéale pour | Exemple |
|---|---|---|
1. Assignation (df['col'] = ...) | Cas les plus courants/simples | df['salary'] = ... |
2. Insertion (df.insert) | Insérer à un index précis | df.insert(1, 'x', ...) |
3. assign | Method chaining | df = df.assign(x=...) |
4. pd.concat | Ajouter plusieurs colonnes | pd.concat([df, df2], axis=1) |
| 5. Basée sur des colonnes existantes | Transformations réelles | df['age2'] = df['age'] * 2 |
| 6. Colonnes conditionnelles | Logique if‑else | np.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'] = 1Conclusion
Vous connaissez maintenant les 6 méthodes essentielles pour ajouter de nouvelles colonnes dans Pandas :
- Assignation simple (meilleur choix par défaut)
- Méthode
insertpour un ordre précis - Méthode
assignpour le chaining concatpour 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']] * 24. Quelle est la méthode la plus rapide ?
L’assignation simple (df['col'] = ...) est généralement la plus efficace.