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
- 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. - Use
headerCorretamente: Se o cabeçalho estiver em uma linha específica, ajuste o parâmetroheaderpara alinhar a leitura dos dados corretamente. - Combine com
nrowspara Performance: Quando pular muitas linhas e ler uma amostra pequena, combineskiprowscomnrowspara 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.

Leave a comment