Añadir columna (2)

Utilizar iterrows() para iterar sobre cada observación de un DataFrame Pandas es fácil de entender, pero no muy eficiente. En cada iteración, estás creando una nueva Serie Pandas.

Si quieres añadir una columna a un Marco de datos llamando 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 de 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

Pruebe este ejercicio completando este 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()