OUJOOD.COM
Sélectionner une seule colonne
Il y a deux façons d'accéder à une colonne unique dans un DataFrame. La plus courante utilise les crochets avec le nom de la colonne entre guillemets. L'autre, appelée dot notation, utilise un point suivi du nom — mais avec des limites importantes.
import pandas as pd
data = {
"nom": ["Alice", "Bob", "Clara", "David"],
"âge": [28, 34, 22, 45],
"ville": ["Paris", "Lyon", "Marseille", "Bordeaux"],
"score": [88, 74, 95, 61]
}
df = pd.DataFrame(data)
# Syntaxe crochets — retourne une Series
ages = df["âge"]
print(type(ages)) # <class 'pandas.core.series.Series'>
print(ages)
# Dot notation — fonctionne si le nom n'a pas d'espace ni d'accent
scores = df.score
print(scores)
La dot notation est pratique à taper, mais elle échoue silencieusement dans plusieurs cas : si le nom de colonne contient un espace, un accent, un tiret, ou si ce nom correspond à une méthode Pandas existante comme count, mean ou drop. Par sécurité, préférez toujours la syntaxe crochets — elle fonctionne dans tous les cas.
Sélectionner plusieurs colonnes
Pour extraire plusieurs colonnes en même temps, passez une liste de noms entre les crochets. Le résultat est un DataFrame, pas une Series — c'est la distinction clé entre df["col"] et df[["col"]].
import pandas as pd
data = {
"nom": ["Alice", "Bob", "Clara", "David"],
"âge": [28, 34, 22, 45],
"ville": ["Paris", "Lyon", "Marseille", "Bordeaux"],
"score": [88, 74, 95, 61]
}
df = pd.DataFrame(data)
# Deux crochets = liste de colonnes = retourne un DataFrame
sous_df = df[["nom", "score"]]
print(type(sous_df)) # <class 'pandas.core.frame.DataFrame'>
print(sous_df)
# Réordonner les colonnes en même temps
df_reordonné = df[["score", "nom", "ville"]]
print(df_reordonné)
Passer une liste de colonnes à un DataFrame est aussi un moyen simple de le réordonner ou d'en exclure certaines sans modifier le DataFrame original. df[["score", "nom", "ville"]] retourne un nouveau DataFrame avec seulement ces trois colonnes dans cet ordre — âge est absent, et aucune ligne n'a été touchée.
Sélectionner les colonnes par type de données
Quand un DataFrame contient beaucoup de colonnes, sélectionner manuellement toutes les colonnes numériques ou toutes les colonnes texte devient fastidieux. select_dtypes() automatise ça en filtrant par type.
import pandas as pd
data = {
"nom": ["Alice", "Bob", "Clara"],
"âge": [28, 34, 22],
"salaire": [2800.0, 3500.0, 2200.0],
"ville": ["Paris", "Lyon", "Marseille"],
"actif": [True, False, True]
}
df = pd.DataFrame(data)
# Toutes les colonnes numériques (int et float)
print(df.select_dtypes(include="number"))
# Toutes les colonnes texte
print(df.select_dtypes(include="object"))
# Exclure les colonnes booléennes
print(df.select_dtypes(exclude="bool"))
select_dtypes(include="number") inclut à la fois les int64 et les float64 en une seule instruction. C'est utile avant d'appliquer une normalisation ou un calcul statistique qui ne doit s'appliquer qu'aux colonnes numériques, sans avoir à lister leurs noms un par un.
Renommer des colonnes
Les fichiers reçus de l'extérieur ont rarement des noms de colonnes propres : espaces, majuscules incohérentes, noms trop longs ou peu explicites. La méthode rename() corrige ça sans recréer le DataFrame.
import pandas as pd
data = {
"Nom Complet": ["Alice Martin", "Bob Dupont"],
"Age (ans)": [28, 34],
"CA Total (€)": [15200.0, 8900.0]
}
df = pd.DataFrame(data)
# Renommer des colonnes spécifiques
df = df.rename(columns={
"Nom Complet": "nom",
"Age (ans)": "age",
"CA Total (€)": "chiffre_affaires"
})
print(df.columns)
# Nettoyer tous les noms en minuscules sans espaces
df.columns = df.columns.str.lower().str.replace(" ", "_")
print(df.columns)
df.columns.str.lower().str.replace(" ", "_") est un nettoyage en une ligne applicable à tous les noms à la fois : minuscules, espaces remplacés par des underscores. C'est souvent la première transformation à faire sur un fichier externe avant toute autre manipulation, pour éviter les problèmes d'accès aux colonnes par la suite.
Par carabde | Mis à jour le 26 avril 2026