Como Ler um CSV a Partir de uma Linha Específica com Pandas

A leitura de arquivos CSV a partir de uma linha específica é especialmente útil quando o arquivo possui metadados, cabeçalhos múltiplos ou seções que você deseja ignorar. A função read_csv() do Pandas oferece flexibilidade para lidar com esses cenários.

1. Pulando um Número Específico de Linhas com skiprows

O parâmetro skiprows aceita um número inteiro, que representa o número de linhas a serem puladas no início do arquivo. Se você quer começar a leitura a partir da linha 5, por exemplo, basta pular as 4 primeiras linhas.

import pandas as pd

# Lendo o arquivo CSV a partir da linha 5 (pulando as primeiras 4 linhas)
df = pd.read_csv('seu_arquivo.csv', skiprows=4)
print(df.head())  # Exibe as primeiras linhas a partir da linha especificada

2. Pulando Linhas Específicas Indicadas por Índices

Além de um número, skiprows também pode receber uma lista de índices das linhas que você deseja pular. Isso é útil se você quiser pular linhas específicas em vez de uma sequência contínua.

# Pulando as linhas 0, 2 e 3 (começando do índice 0)
df = pd.read_csv('seu_arquivo.csv', skiprows=[0, 2, 3])
print(df.head())

3. Começando a Leitura a Partir de uma Linha com Base em uma Condição

Se você não sabe o número exato de linhas a serem puladas, mas quer começar a leitura quando uma condição específica for atendida, você pode usar um gerador com skiprows para definir essa lógica.

# Exemplo de leitura a partir da primeira linha que não contém o termo "Ignorar"
def skip_until(file, condition):
    with open(file) as f:
        for i, line in enumerate(f):
            if condition(line):
                return i  # Retorna o índice da linha que atende à condição

# Lê a partir da linha que começa com 'Dados' ignorando todas as anteriores
linha_inicial = skip_until('seu_arquivo.csv', lambda linha: linha.startswith('Dados'))
df = pd.read_csv('seu_arquivo.csv', skiprows=linha_inicial)
print(df.head())

4. Ignorando Cabeçalhos Múltiplos e Linhas de Metadados

Em casos onde o arquivo CSV contém múltiplos cabeçalhos, ou blocos de metadados, você pode ajustar o número de linhas a serem puladas, e definir a linha correta que contém o cabeçalho dos dados.

# Pulando 10 linhas e definindo o cabeçalho na linha 11
df = pd.read_csv('seu_arquivo.csv', skiprows=10, header=0)
print(df.head())

Boas Práticas ao Ler CSVs a Partir de Linhas Específicas

  1. Verifique o Conteúdo Inicial: Antes de usar skiprows, visualize o conteúdo do CSV usando um editor de texto ou um script básico para identificar as linhas a serem puladas.
  2. Use header Corretamente: Se o cabeçalho estiver em uma linha específica, ajuste o parâmetro header para alinhar a leitura dos dados corretamente.
  3. Combine com nrows para Performance: Quando pular muitas linhas e ler uma amostra pequena, combine skiprows com nrows para garantir um carregamento eficiente.

Conclusão

A função read_csv() do Pandas, combinada com o uso do parâmetro skiprows, oferece uma maneira poderosa e flexível de controlar a leitura de arquivos CSV, permitindo que você pule seções indesejadas e comece exatamente de onde precisa. Esses exemplos podem ser adaptados para lidar com diferentes tipos de arquivos CSV, tornando o processo de ingestão de dados mais eficiente e organizado.

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment