Adicione uma coluna (2)
Usar o site iterrows()
para iterar sobre cada observação de um DataFrame do Pandas é fácil de entender, mas não é muito eficiente. Em cada iteração, é criada uma nova série do pandas.
Se você quiser 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 maneira de fazer isso. Em vez disso, você deverá usar apply()
.
Compare a versão iterrows()
com a versão apply()
para que você obtenha o 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)
Você pode fazer algo semelhante para chamar o método upper()
em cada nome da coluna country
. No entanto, upper()
é um método, portanto, precisaremos de uma abordagem ligeiramente diferente:
Este exercício faz parte do curso
Python intermediário
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 colunaCOUNTRY
deve ser adicionada acars
, 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()