ComenzarEmpieza gratis

Añadir una columna (2)

Utilizar iterrows() para iterar por cada observación de un DataFrame Pandas es fácil de entender, pero no muy eficiente. En cada iteración, creas una nueva serie de pandas.

Si quieres añadir una columna a un DataFrame mediante una llamada a una función de otra columna, el método iterrows() en combinación con un bucle for no es la mejor forma de hacerlo. En su lugar, deberás utilizar apply().

Compara la versión iterrows() con la versión apply() para obtener el mismo resultado en el DataFrame brics:

for lab, row in brics.iterrows() :

    brics.loc[lab, "name_length"] = len(row["country"])




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

Podemos hacer algo similar para llamar al método upper() en cada nombre de la columna country. Sin embargo, upper() es un método, por lo que necesitaremos un enfoque ligeramente distinto:

Este ejercicio forma parte del curso

Python intermedio

Ver curso

Instrucciones del ejercicio

  • Sustituye el bucle for por una sola línea que utilice .apply(str.upper). La llamada debe dar el mismo resultado: debe añadirse una columna COUNTRY a cars, que contenga una versión en mayúsculas de los nombres de los países.
  • Como siempre, imprime cars para ver los frutos de tu duro trabajo.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

# 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()
Editar y ejecutar código