ComeçarComece gratuitamente

Adicione uma coluna (2)

É fácil entender o uso de iterrows() para iterar por cada observação de um DataFrame do pandas, mas não é muito eficiente. Em cada iteração, é criada uma nova série do pandas.

Para adicionar uma coluna a um DataFrame chamando uma função em outra coluna, o método iterrows() em combinação com um loop for não é a melhor opção. Em vez disso, convém usar apply().

Compare a versão com iterrows() à versão com apply() para chegar ao mesmo resultado no DataFrame brics:

for lab, row in brics.iterrows() :

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




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

Podemos fazer algo parecido para chamar o método upper() com cada nome da coluna country. Contudo, upper() é um método, portanto precisamos de uma abordagem um pouco diferente:

Este exercício faz parte do curso

Python intermediário

Ver Curso

Instruções de exercício

  • Substitua o loop for por um código de uma linha que use .apply(str.upper). A chamada deve dar o mesmo resultado: uma coluna COUNTRY deve ser adicionada a cars, contendo uma versão em maiúsculas dos nomes dos países.
  • Como de costume, imprima cars para ver os frutos de seu árduo trabalho.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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 e executar código