Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Dúvida] Métodos de gerenciamento de memória RAM

Olá, pessoal!
Pensando na análise de dados, quando trabalhamos com arquivos muito grandes que podem estourar a memória RAM do computador, quais são os métodos e boas práticas mais utilizados no mercado para lidar com esse problema? Existe alguma função nativa do Pandas?

1 resposta

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:

  1. 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)
  1. 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'])
  1. 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