Data Wrangling

Carregando Dados de Texto no Pandas com Eficiência

Spread the love

Pandas é uma poderosa biblioteca Python para manipulação e análise de dados, e carregar dados de arquivos de texto é uma tarefa fundamental. Este artigo explora métodos eficientes para importar dados de vários formatos de texto para DataFrames Pandas.

Sumário

1. Carregando arquivos CSV e delimitados com read_csv()

A função read_csv() é a força motriz para importar arquivos de valores separados por vírgula (CSV). Sua versatilidade se estende a outros arquivos delimitados especificando o delimitador usando o parâmetro sep ou delimiter. Vamos explorar suas capacidades:


import pandas as pd

# Carregar um arquivo CSV
df_csv = pd.read_csv("data.csv")
print(df_csv.head()) #Usando head() para mostrar apenas as primeiras linhas para melhor legibilidade

# Carregar um arquivo separado por tabulação
df_tsv = pd.read_csv("data.tsv", sep="t")
print(df_tsv.head())

# Carregar um arquivo com um pipe como delimitador
df_pipe = pd.read_csv("data.txt", delimiter="|")
print(df_pipe.head())

Além do carregamento básico, read_csv() oferece parâmetros poderosos para controle preciso:

  • sep ou delimiter: Especifica o delimitador (o padrão é ‘,’).
  • header: Número(s) da(s) linha(s) para nomes de coluna (o padrão é 0, use None para nenhum cabeçalho).
  • names: Lista de nomes de coluna se não houver linha de cabeçalho.
  • index_col: Coluna a ser usada como índice do DataFrame.
  • usecols: Seleciona colunas específicas para melhorar o desempenho.
  • nrows: Lê apenas as primeiras n linhas para pré-visualizar arquivos grandes.
  • skiprows: Pula linhas especificadas no início.
  • encoding: Especifica a codificação do arquivo (por exemplo, ‘utf-8’, ‘latin-1’).
  • dtype: Especifica os tipos de dados para as colunas
  • comment: Caractere para indicar linhas de comentário

2. Manipulando arquivos de largura fixa com read_fwf()

O método read_fwf() (ler arquivo formatado de largura fixa) é crucial para arquivos onde as colunas são definidas por sua largura fixa, não por delimitadores. Isso é comum em sistemas legados.


import pandas as pd

# Definir larguras de coluna
colspecs = [(0, 10), (10, 20), (20, 30)]  # As colunas têm 10, 10 e 10 caracteres de largura

# Carregar o arquivo de largura fixa
df_fwf = pd.read_fwf("data_fwf.txt", colspecs=colspecs, header=None)
df_fwf.columns = ['Column1', 'Column2', 'Column3']

print(df_fwf.head())

Os parâmetros principais para read_fwf() incluem:

  • colspecs: Lista de tuplas definindo as posições de início e fim da coluna.
  • widths: Alternativa a colspecs, fornecendo uma lista de larguras de coluna.
  • header: Número da linha para o cabeçalho (igual a read_csv()).
  • names: Fornece nomes de coluna (igual a read_csv()).

3. Usando read_table() para arquivos separados por tabulação e outros arquivos delimitados

read_table() é amplamente equivalente a read_csv(), com o delimitador padrão sendo uma tabulação (t). É ideal para arquivos separados por tabulação (TSV), mas pode lidar com outros delimitadores especificando o parâmetro sep. Ele compartilha todos os parâmetros de read_csv(), fornecendo flexibilidade semelhante.


import pandas as pd

# Carregar um arquivo separado por tabulação
df_table = pd.read_table("data.tsv")
print(df_table.head())

# Especificar um delimitador diferente
df_table_custom = pd.read_table("data.txt", sep="|")
print(df_table_custom.head())

Pandas oferece ferramentas robustas para importar dados de forma eficiente de diversos formatos de arquivos de texto. A seleção do método correto depende da estrutura dos seus dados. Lembre-se de abordar problemas de codificação e lidar com valores ausentes após o carregamento.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *