Pode usar a função DataFrame.iterrows() da Bi­bli­o­teca Python Pandas para iterar sobre as linhas dos Da­ta­Fra­mes do Pandas. Esta função retorna para cada linha uma tupla Python composta por um índice e uma série que contém os dados da linha cor­res­pon­dente.

Sintaxe do Pandas iterrows()

A sintaxe básica do Pandas DataFrame.iterrows() é simples, uma vez que esta função não aceita nenhum parâmetro:

df.iterrows()
python

No código anterior, df refere-se ao DataFrame sobre o qual se deseja iterar.

Como utilizar a função Pandas iterrows()

A função DataFrame.iterrows() é nor­mal­mente utilizada quando é ne­ces­sá­rio processar dados linha a linha. Por isso, é fre­quen­te­mente combinada com o loop for em Python.

Sumar os valores de uma coluna

A seguir, usamos um DataFrame de exemplo que tem as colunas Nome, Idade e Pontuação:

import pandas as pd
# Crear un DataFrame de ejemplo
data = {'Nombre': ['Ana', 'Teo', 'Clara'],
    'Edad': [23, 35, 29],
    'Puntuación': [88, 92, 85]}
df = pd.DataFrame(data)
print(df)
python

O código anterior gera o seguinte DataFrame:

Nombre  Edad  Puntuación
0    Ana     23         88
1    Teo     35         92
2  Clara     29         85

Agora, podemos usar a função Pandas DataFrame.iterrows() para calcular a soma das pon­tu­a­ções:

# Calcular la suma de las puntuaciones
total_score = 0
for index, row in df.iterrows():
    total_score += row['Puntuación']
print(f"La suma total de las puntuaciones es: {total_score}")
python

Neste exemplo, utilizou-se a função iterrows() do Pandas para iterar sobre as linhas e somar su­ces­si­va­mente os valores presentes na coluna Pontuação. O resultado é o seguinte:

La suma total de las puntuaciones es: 265
Nota

Ao trabalhar com o Pandas iterrows(), cer­ti­fi­que-se de nunca modificar di­re­ta­mente os dados sobre os quais está a iterar. Se o fizer, os dados gerados podem não ser os esperados e podem ocorrer erros im­pre­vis­tos.

Aplicar condições a linhas in­di­vi­du­ais

A função iterrows() também pode ser usada para aplicar condições a linhas in­di­vi­du­ais de um DataFrame. Imagine que você deseja saber os nomes de todas as pessoas com mais de 30 anos no DataFrame que usamos an­te­ri­or­mente como exemplo:

# Obtener los nombres de las personas que tienen más de 30 años
names = []
for index, row in df.iterrows():
    if row['Edad'] > 30:
        names.append(row['Nombre'])
print(f"Personas mayores de 30 años: {names}")
python

No código anterior, itera-se sobre as linhas do conjunto de dados uti­li­zando DataFrame.iterrows() do Pandas. Dentro do loop for, avalia-se os valores da coluna Idade para armazenar na lista Python names apenas os nomes das pessoas com mais de 30 anos. Para isso, utiliza-se a função append() do Python. O resultado obtido é o seguinte:

Personas mayores de 30 años: ['Teo']
Nota

Embora a função DataFrames.iterrows() do Pandas seja fácil de usar, ela deve ser utilizada com cuidado, pois é po­ten­ci­al­mente menos eficiente em Da­ta­Fra­mes grandes. Em muitos casos, existem al­ter­na­ti­vas mais adequadas, como apply() ou o cálculo ve­to­ri­zado do Pandas.

Ir para o menu principal