Accéder au contenu principal

Tutoriel pandas : ajouter une colonne

Vous n’êtes jamais limité aux seules données fournies. Vous pouvez ajouter de nouvelles colonnes à un DataFrame.
· 4 min lire

Explorez l'IA

Vous n’êtes jamais limité aux seules données fournies. Vous pouvez ajouter de nouvelles colonnes à un DataFrame. On parle aussi de transformation, de mutation ou encore de feature engineering.

Vous pouvez créer des colonnes entièrement nouvelles, mais il est fréquent de les dériver à partir d’autres colonnes, par exemple en additionnant des colonnes ou en changeant d’unité.

Dériver une colonne

Avec un jeu de données sur les chiens, imaginons que vous souhaitiez ajouter une nouvelle colonne à votre DataFrame pour exprimer la taille de chaque chien en mètres plutôt qu’en centimètres.

À gauche du signe égal, utilisez des crochets avec le nom de la nouvelle colonne à créer, ici height_m. À droite, placez le calcul.

dogs["height_m"] = dogs["height_cm"] / 100
print(dogs)
        name        breed   color   height_cm   weight_kg   date_of_birth   height_m
0      Bella     Labrador   Brown          56          24      2013-07-01       0.56
1    Charlie       Poodle   Black          43          24      2016-09-16       0.43
2       Lucy    Chow Chow   Brown          46          24      2014-08-25       0.46
3     Cooper    Schnauzer    Gray          49          17      2016-09-16       0.49
4        Max     Labrador   Black          59          29      2016-09-16       0.59
5     Stella    Chihuahua     Tan          18           2      2016-09-16       0.18
6     Bernie  St. Bernard   White          77          74      2016-09-16       0.77

Remarquez que la colonne d’origine et la colonne dérivée se trouvent toutes deux dans le DataFrame modifié.

Ajouter une colonne

Dans cet exemple, vous allez calculer un indice de masse canin et l’ajouter comme colonne à votre DataFrame. Le BMI (body mass index) correspond au poids en kilogrammes divisé par la taille en mètres au carré.

dogs["height_m"] = dogs["weight_kg"] / dogs["height_m"] ** 2
print(dogs.head())
        name        breed   color   height_cm   weight_kg   date_of_birth   height_m          bmi
0      Bella     Labrador   Brown          56          24      2013-07-01       0.56    76.530612
1    Charlie       Poodle   Black          43          24      2016-09-16       0.43   129.799892
2       Lucy    Chow Chow   Brown          46          24      2014-08-25       0.46   113.421550
3     Cooper    Schnauzer    Gray          49          17      2016-09-16       0.49    70.803832
4        Max     Labrador   Black          59          29      2016-09-16       0.59    83.309394

Là encore, la nouvelle colonne se trouve à gauche du signe égal, mais cette fois, le calcul mobilise deux colonnes.

Ajouter une colonne avec plusieurs manipulations

La véritable puissance de pandas se révèle lorsque vous combinez toutes les compétences acquises jusque-là. Voyons comment identifier les chiens grands et maigres.

Pour définir les chiens maigres, commencez par extraire le sous-ensemble ayant un BMI inférieur à 100. Ensuite, triez par taille en ordre décroissant pour faire apparaître en tête les plus grands parmi eux.

Enfin, ne conservez que les colonnes qui vous intéressent.

bmi_lt_100 = dogs[dogs["bmi"] < 100]
bmi_lt_100_height = bmi_lt_100.short_values("height_cm", ascending=False)
bmi_lt_100_height[["name", "height_cm", "bmi"]]
        name      height_cm           bmi
4        Max             59     83.309394
0      Bella             56     76.530612
3     Cooper             49     70.803832
5     Stella             18     61.728395

Ici, on voit que Max est le plus grand chien avec un BMI inférieur à 100.

Exemple interactif

Dans l’exemple ci-dessous, vous ajoutez une nouvelle colonne au DataFrame homelessness, nommée total, qui contient la somme des colonnes individuals et family_members. Puis vous ajoutez une autre colonne à homelessness, nommée p_individuals, indiquant la proportion de personnes sans abri qui sont des individus dans chaque État. Enfin, vous affichez le DataFrame homelessness.

# Add total col as sum of individuals and family_members
homelessness["total"] = homelessness["individuals"] + homelessness["family_members"]

# Add p_individuals col as proportion of individuals
homelessness["p_individuals"] = homelessness["individuals"] / homelessness["total"]

# See the result
print(homelessness)

Lorsque nous exécutons le code ci-dessus, nous obtenons le résultat suivant :

                region                 state  individuals  family_members  state_pop     total  p_individuals
0   East South Central               Alabama       2570.0           864.0    4887681    3434.0          0.748
1              Pacific                Alaska       1434.0           582.0     735139    2016.0          0.711
2             Mountain               Arizona       7259.0          2606.0    7158024    9865.0          0.736
3   West South Central              Arkansas       2280.0           432.0    3009733    2712.0          0.841
4              Pacific            California     109008.0         20964.0   39461588  129972.0          0.8
...
48      South Atlantic         West Virginia       1021.0           222.0    1804291    1243.0          0.821
49  East North Central             Wisconsin       2740.0          2167.0    5807406    4907.0          0.558
50            Mountain               Wyoming        434.0           205.0     577601     639.0          0.679

Essayez par vous-même.

Consultez aussi le tutoriel de DataCamp sur comment supprimer des colonnes dans pandas.

Pour en savoir plus sur l’ajout de nouvelles colonnes avec pandas, regardez cette vidéo issue de notre cours Data Manipulation with pandas.

Ce contenu est extrait du cours Data Manipulation with pandas de DataCamp, conçu par Maggie Matsui et Richie Cotton.

Sujets

Contenus associés

Tutoriel

Tutoriel Python sur les structures de données