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
- Carregando arquivos CSV e delimitados com
read_csv()
- Manipulando arquivos de largura fixa com
read_fwf()
- Usando
read_table()
para arquivos separados por tabulação e outros arquivos delimitados
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
oudelimiter
: Especifica o delimitador (o padrão é ‘,’).header
: Número(s) da(s) linha(s) para nomes de coluna (o padrão é 0, useNone
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 primeirasn
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 colunascomment
: 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 acolspecs
, fornecendo uma lista de larguras de coluna.header
: Número da linha para o cabeçalho (igual aread_csv()
).names
: Fornece nomes de coluna (igual aread_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.