CommencezCommencez gratuitement

Ajouter une colonne (2)

Utiliser iterrows() pour parcourir chaque observation d'un DataFrame Pandas est facile à comprendre, mais peu efficace. À chaque itération, vous créez une nouvelle Series de Pandas.

Si vous voulez ajouter une colonne à un DataFrame en appelant une fonction sur une autre colonne, la méthode iterrows() combinée à une boucle for n'est pas la meilleure approche. Préférez plutôt apply().

Comparez la version avec iterrows() et la version avec apply() pour obtenir le même résultat dans le DataFrame brics :

for lab, row in brics.iterrows() :
    brics.loc[lab, "name_length"] = len(row["country"])

brics["name_length"] = brics["country"].apply(len)

On peut faire quelque chose de semblable pour appeler la méthode upper() sur chaque nom dans la colonne country. Toutefois, upper() est une méthode; il faut donc une approche légèrement différente :

Cette activité fait partie du cours

Python intermédiaire

Voir le cours

Instructions de l’exercice

  • Remplacez la boucle for par une instruction sur une ligne qui utilise .apply(str.upper). L'appel doit donner le même résultat : une colonne COUNTRY doit être ajoutée à cars, contenant une version en majuscules des noms de pays.
  • Comme d'habitude, affichez cars pour voir le fruit de votre travail acharné

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)

# Use .apply(str.upper)
for lab, row in cars.iterrows() :
    cars.loc[lab, "COUNTRY"] = row["country"].upper()
Modifier et exécuter le code