CommencerCommencer gratuitement

Ajouter une colonne (2)

L'utilisation de iterrows() pour itérer sur chaque observation d'un DataFrame Pandas est facile à comprendre, mais n'est pas très efficace. À chaque itération, vous créez une nouvelle série Pandas.

Si vous souhaitez 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 solution. Au lieu de cela, vous devez utiliser apply().

Comparez la version iterrows() avec la version 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)

Nous pouvons faire la même chose pour appeler la méthode upper() sur chaque nom de la colonne country. Cependant, upper() est une méthode, nous aurons donc besoin d'une approche légèrement différente :

Cet exercice fait partie du cours

Python intermédiaire

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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