Como Importar Excel no Python com Pandas (Guia Prático)

Chamamos de “importar dados” a ação de carregar informações em algum ambiente (plataforma, site, sistema, ferramenta, etc). Neste caso, estamos falando de importar dados para o Python, ou seja, vamos carregar dados na memória através do Python para analisá-los.

Esses dados podem ser de diferentes formatos: .xlsx (Excel), .csv ou .txt (texto), .json, entre outros. Neste post, vamos focar especificamente no formato XLSX.

Importar os dados em geral é simples. O desafio normalmente está nos formatos do dado e do arquivo. O tamanho da base também pode ser um problema dependendo do nível de detalhe que você precisa analisar.

Hoje vamos explorar a função read_excel da biblioteca Pandas.

O Dataset do Exemplo

Para este exemplo, vamos usar uma base de dados real de um e-commerce brasileiro disponível no Kaggle (Olist). 


Importando o Arquivo

Primeiro, importamos a biblioteca Pandas.

				
					# Importo as bibliotecas que irei usar
import pandas as pd

# Ajusto a configuração de visualização de colunas do Jupyter Notebook
pd.set_option('max_columns', None)
				
			

 

Em seguida, realizamos a leitura do arquivo Excel.

				
					# Exemplo genérico com caminho completo
# df = pd.read_excel('caminho_do_arquivo\\nome_do_arquivo.xlsx')

# Exemplo prático (arquivo na mesma pasta do script)
df = pd.read_excel('olist_merged.xlsx')
				
			

 

Considerações Importantes:

  1. Caminho do Arquivo: Quando escrever o caminho completo (pastas + arquivo), utilize barra invertida / ou duas barras \\ ao invés da barra única \ padrão do Windows.

  2. Diretório: Se o arquivo .py (código) estiver na mesma pasta do arquivo de dados, não é necessário colocar o caminho da pasta, apenas o nome do arquivo.

  3. Objeto DataFrame: Precisamos guardar o arquivo em uma variável (df =), caso contrário, o Python apenas lê o dado e não o armazena para uso. “df” é uma convenção para DataFrame, mas você pode usar o nome que preferir.

  4. Estrutura: Ao importar com Pandas, os dados são estruturados como um DataFrame, que funciona de forma muito similar a uma tabela de Excel.

Simples, certo?


Trabalhando com Abas (Sheet Name)

A função read_excel possui um argumento exclusivo e muito importante quando temos diversas abas na planilha: o sheet_name.

				
					df = pd.read_excel("olist_merged.xlsx", sheet_name="Planilha1")
				
			

 

Um arquivo Excel pode conter múltiplas abas e é neste argumento que especificamos qual queremos importar.

Também podemos utilizar o índice numérico da aba. Lembrando que a contagem no Python começa em zero:

  • Para a 1ª aba: use sheet_name=0

  • Para a 2ª aba: use sheet_name=1

  • E assim por diante.

Dica: Você também pode passar uma lista de nomes caso precise importar múltiplas abas de uma vez.


Dicas para Grandes Arquivos (Performance)

Existem 3 argumentos da função pd.read_excel que podem ser combinados para otimizar a importação, especialmente em arquivos muito grandes.

1. Limitar Linhas (nrows)

O nrows limita a quantidade de linhas que serão importadas. É excelente para dar uma “olhada rápida” na estrutura do arquivo antes de carregar tudo na memória.

				
					# Importando apenas as primeiras 100 linhas
df = pd.read_excel('olist_merged.xlsx', nrows=100)
				
			

 

2. Selecionar Colunas (usecols)

No argumento usecols, passamos uma lista apenas com as colunas que nos interessam. Isso melhora drasticamente a performance de importação e economiza memória RAM.

				
					# Listo as colunas que quero importar
lista_colunas = [
    'order_id',
    'order_purchase_timestamp',
    'order_approved_at',
    'order_delivered_customer_date',
    'order_estimated_delivery_date',
    'customer_city',
    'customer_state',
    'payment_type',
    'payment_value',
    'product_id',
    'price',
    'freight_value',
    'product_category_name'
]

# Importo o arquivo filtrando as colunas
df = pd.read_excel(
    "olist_merged.xlsx",
    sheet_name="Planilha1",
    # nrows=100, # Comentado para ler todas as linhas
    usecols=lista_colunas
)
				
			

 

Dica: Use a função list(df) para ver os nomes de todas as colunas disponíveis e copiar apenas as que precisa.

 

3. Definir Tipos de Dados (dtype)

Neste argumento, passamos um dicionário especificando o formato das colunas. Em geral, prefiro importar tudo como object (texto) e tratar depois. Porém, para colunas numéricas (valor, preço, quantidade), já podemos importar no formato correto para ganhar tempo.

				
					# Especifico os tipos das colunas
tipos_colunas = {
    'order_id': str,
    'order_purchase_timestamp': str,
    'order_approved_at': str,
    'order_delivered_customer_date': str,
    'order_estimated_delivery_date': str,
    'customer_city': str,
    'customer_state': str,
    'payment_type': str,
    'payment_value': float,
    'product_id': str,
    'price': float,
    'freight_value': float,
    'product_category_name': str
}

# Importação final completa
df = pd.read_excel(
    "olist_merged.xlsx",
    sheet_name="Planilha1",
    usecols=lista_colunas,
    dtype=tipos_colunas
)
				
			

 

Gostou do conteúdo? Tem alguma dúvida sobre tratamento de Excel no Pandas? Deixe um comentário abaixo ou confira meu post sobre Importação de arquivos CSV.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *