Ei! Tudo bem, Luísa?
Essa é uma preocupação muito comum e super importante quando trabalhamos com análise de dados no mundo real! O Pandas carrega todos os dados diretamente na memória RAM, o que pode se tornar um problema com arquivos muito grandes.
Felizmente, existem excelentes práticas de mercado e funções nativas do Pandas para gerenciar e otimizar o uso da memória. Aqui estão as principais:
- Parâmetro chunksize (Carregamento em lotes)
A função nativa mais utilizada para arquivos gigantes é o parâmetro chunksize dentro do pd.read_csv(). Em vez de carregar o arquivo inteiro de uma vez, o Pandas lê o arquivo em blocos (lotes) menores.
import pandas as pd
# Lê o arquivo em lotes de 10.000 linhas por vez
for lote in pd.read_csv('dados_gigantes.csv', chunksize=10000):
# Processa cada lote individualmente (filtragem, agregação, etc.)
print(lote.shape)
- Filtragem de Colunas (usecols)
Muitas vezes não precisamos de todas as colunas de uma base de dados. Com o parâmetro usecols, você carrega apenas o que realmente vai usar, economizando muita memória RAM.
# Carrega apenas as duas colunas especificadas
df = pd.read_csv('dados_gigantes.csv', usecols=['id_cliente', 'valor_venda'])
- Otimização dos Tipos de Dados (dtypes)
Por padrão, o Pandas pode atribuir tipos de dados que ocupam mais espaço do que o necessário (como float64 para números pequenos ou object para textos repetitivos).
Mude para category: Se você tem uma coluna de texto com muitas repetições (ex: "Estado", "Gênero"), altere o tipo para category. O ganho de memória é massivo.
Reduza a precisão: Altere de int64 para int32 ou int8, se os números forem menores.
Você conhecia algumas dessas possibilidades?
Conteúdo para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado