Iterar sobre DataFrames com Pandas itterows()
Pode usar a função DataFrame.iterrows() da Biblioteca Python Pandas para iterar sobre as linhas dos DataFrames 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 correspondente.
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()pythonNo 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() é normalmente utilizada quando é necessário processar dados linha a linha. Por isso, é frequentemente 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)pythonO código anterior gera o seguinte DataFrame:
Nombre Edad Puntuación
0 Ana 23 88
1 Teo 35 92
2 Clara 29 85Agora, podemos usar a função Pandas DataFrame.iterrows() para calcular a soma das pontuaçõ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}")pythonNeste exemplo, utilizou-se a função iterrows() do Pandas para iterar sobre as linhas e somar sucessivamente os valores presentes na coluna Pontuação. O resultado é o seguinte:
La suma total de las puntuaciones es: 265Ao trabalhar com o Pandas iterrows(), certifique-se de nunca modificar diretamente os dados sobre os quais está a iterar. Se o fizer, os dados gerados podem não ser os esperados e podem ocorrer erros imprevistos.
Aplicar condições a linhas individuais
A função iterrows() também pode ser usada para aplicar condições a linhas individuais de um DataFrame. Imagine que você deseja saber os nomes de todas as pessoas com mais de 30 anos no DataFrame que usamos anteriormente 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}")pythonNo código anterior, itera-se sobre as linhas do conjunto de dados utilizando 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']Embora a função DataFrames.iterrows() do Pandas seja fácil de usar, ela deve ser utilizada com cuidado, pois é potencialmente menos eficiente em DataFrames grandes. Em muitos casos, existem alternativas mais adequadas, como apply() ou o cálculo vetorizado do Pandas.