TuBrief
구독 채널
비디오
커뮤니티

Se a análise de dados parar devido à falta de memória no Pandas

TuBrief 편집팀
2026년 7월 13일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Português한국어EnglishEspañol中文العربيةDeutschFrançaisहिन्दीРусскийBahasa Indonesia日本語

관련 영상

DuckDB está se tornando imparável...6:04

DuckDB está se tornando imparável...

Better Stack

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Se a análise de dados parar devido à falta de memória no Pandas

Não carregue todos os dados na RAM

O Pandas carrega os dados inteiros na RAM de uma só vez. É por isso que o Python entra em colapso ao tentar abrir um arquivo CSV de 20GB em um notebook com 16GB de RAM. Assim que os dados ficam um pouco maiores, o notebook trava e o kernel do Jupyter Notebook morre. Você não pode ficar fazendo amostragem dos dados ou trocando de computador o tempo todo.

Em vez disso, use o DuckDB. Ele traz apenas os dados necessários, aos poucos. Ele não carrega o conjunto total de dados na RAM e analisa apenas as partes necessárias usando a sintaxe SQL. Há um motivo para ele ganhar destaque entre os engenheiros de dados como uma alternativa ao Pandas.

Mude o código do Pandas em 3 etapas

Mudar o ambiente de análise de dados é mais simples do que parece. Mantenha o seu DataFrame do Pandas existente e troque apenas o motor.

  1. Preparação de dados: Em vez de ler o arquivo com o Pandas, faça com que o DuckDB aponte para o caminho do arquivo.
  2. Execução da consulta: Escreva as condições e agregações necessárias com a função duckdb.sql(). O cálculo real ainda não acontece neste momento.
  3. Extração de resultados: O cálculo real só é realizado quando você chama .df() no final.

Essa abordagem oferece eficiência além da simples mudança de código. Tarefas que faziam a RAM estourar ao usar groupby no Pandas rodam de forma estável no DuckDB utilizando o disco.

Evitando que a análise pare com o limite de 4GB

Ao lidar com grandes volumes de dados, ocorrem situações em que toda a RAM é consumida e o programa trava. Para evitar isso, você deve instalar guardrails em seu ambiente de trabalho.

Insira o seguinte código no topo do seu script.

`python
import duckdb
con = duckdb.connect()
con.execute("SET memory_limit = '4GB'")
con.execute("SET temp_directory = './tmp'")

`

memory_limit é o limite que define quanta RAM o DuckDB deve usar. Se você definir como 4GB, o sistema inteiro não travará, mesmo no meu notebook com 16GB de RAM. Se a RAM for insuficiente, o DuckDB grava automaticamente os dados em arquivos temporários no disco. De acordo com um benchmark de 2023, ao processar um arquivo Parquet de 140GB, o DuckDB concluiu o trabalho usando apenas 1.3GB de RAM. Se fosse com o Pandas, seria uma tarefa que ocuparia dezenas de gigabytes de RAM e acabaria travando.

Lidando com dados com erro

O momento mais irritante na análise de dados é quando o processamento para devido a formatos incorretos. Se os tipos não coincidirem ao carregar um arquivo CSV, a análise nem começa.

Ao usar a função read_csv, ative as seguintes opções:

`python
con.execute("""
SELECT * FROM read_csv('data.csv',
columns={'id': 'INTEGER', 'value': 'DOUBLE'},
store_rejects=true,
strict_mode=false)
""")

`

Ao fazer isso, o processo inteiro não trava por causa de dados que não estão no formato correto. As linhas inválidas são isoladas em uma tabela separada. Depois, basta consultar a tabela reject_errors separadamente para verificar por que os dados estão corrompidos.

A análise de dados não é um trabalho de consertar ferramentas. É o trabalho de extrair insights dos dados. Pare de rodar o código dezenas de vezes por causa da falta de RAM e garanta eficiência de processamento trocando o motor.