Tutoriais

Como Iterar Sobre Linhas em um DataFrame do Pandas

Ana Maria Gomes 11 fev Básico 5xp
Compartilhar

Ao trabalhar com dados em Python, o Pandas é uma biblioteca essencial que fornece estruturas de dados de alto nível e uma ampla variedade de ferramentas para análise de dados. Uma tarefa comum que você pode encontrar é iterar sobre as linhas de um DataFrame do Pandas. Neste artigo, exploraremos como fazer isso de forma eficaz e também discutiremos algumas considerações importantes a ter em mente.

Curso Gratuito

Seu primeiro projeto Python – curso grátis com certificado!

Vá do zero ao primeiro projeto em apenas 2 horas com o curso Python para Iniciantes.

Comece agora

Iterando Sobre Linhas com iterrows()

Uma das maneiras mais diretas de iterar sobre as linhas de um DataFrame do Pandas é usar o método iterrows(). Esse método retorna um iterador que gera o índice e os dados da linha para cada linha. Veja como você pode usá-lo:

import pandas as pd

# DataFrame de Exemplo
df = pd.DataFrame({'c1': [10, 11, 12], 'c2': [100, 110, 120]})

# Usando iterrows para iterar sobre as linhas do DataFrame
for index, row in df.iterrows():
    print(row['c1'], row['c2'])
Testar

Isso produzirá a saída:

10 100
11 110
12 120

Considerações ao Usar iterrows()

Embora iterrows() seja fácil de usar, é importante notar que pode ser lento, especialmente com DataFrames grandes. Isso ocorre porque iterrows() retorna uma Series para cada linha, o que não preserva os dtypes entre as linhas. Se você precisa preservar os dtypes ou requer melhor desempenho, considere usar itertuples() em vez disso.

Usando itertuples() para Melhor Desempenho

O método itertuples() retorna um iterador que gera namedtuples com os dados da linha. Este método geralmente é mais rápido do que iterrows() e é uma escolha melhor quando o desempenho é uma preocupação. Aqui está um exemplo:

import pandas as pd

# DataFrame de Exemplo
df = pd.DataFrame({'c1': [10, 11, 12], 'c2': [100, 110, 120]})

# Usando itertuples para iterar sobre as linhas do DataFrame
for row in df.itertuples(index=True, name='Pandas'):
    print(row.c1, row.c2)
Testar

Assim como com iterrows(), você obterá a mesma saída, mas com um desempenho potencialmente melhor.

Quando Não Iterar

Antes de decidir iterar sobre as linhas do DataFrame, vale a pena considerar se você precisa iterar. O Pandas é projetado para trabalhar com operações vetorizadas, que geralmente são mais eficientes do que operações linha a linha. Aqui estão algumas alternativas a considerar:

  • Vetorização: Use os métodos integrados do Pandas ou funções do NumPy para realizar operações em colunas inteiras ou DataFrames de uma só vez.
  • Método apply(): Se você tem uma função que não pode ser vetorizada, apply() pode ser usado para aplicar uma função ao longo de um eixo do DataFrame.
  • Cython ou Numba: Se você precisa de alto desempenho, considere usar Cython ou Numba para escrever funções otimizadas que podem ser aplicadas a DataFrames.

Resumo

Neste artigo, cobrimos como iterar sobre as linhas de um DataFrame do Pandas usando iterrows() e itertuples(). Também discutimos a importância de considerar alternativas à iteração para melhor desempenho e eficiência. Lembre-se, embora a iteração possa ser útil em certas situações, sempre procure por soluções vetorizadas primeiro para aproveitar ao máximo as capacidades do Pandas.

Cursos gratuitos para continuar aprendendo

Curso
Grátis · 2h 13min

Python para iniciantes: do zero ao primeiro projeto

Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!

Curso
Grátis · 3h 47min

Python para dados: do zero à análise completa

Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!

Curso
Grátis · 4h 11min

Python para IA: do zero ao primeiro chatbot

Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!

Ver todos os cursos

0 comentários

Exclusivo PRO
Faça parte da discussão

Comente e participe da conversa

Crie sua conta gratuita e compartilhe sua opinião nos comentários.

Entre para a Asimov