Middle
Como contornar o problema de processamento de ficheiros grandes no Pandas que não cabem na memória?
sobes.tech IA
Resposta da IA
Para processar ficheiros grandes no Pandas que não cabem na memória, pode usar várias abordagens:
- Leitura por partes (chunking)
Utilize o parâmetro
chunksizenas funções de leitura, comopd.read_csv(), para carregar dados em porções e processá-los separadamente:
import pandas as pd
chunksize = 10**6 # número de linhas por pedaço
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
# processamento de cada pedaço separadamente
process(chunk)
-
Uso de bibliotecas para trabalhar com grandes conjuntos de dados
- Dask DataFrame — API compatível com Pandas, mas suporta cálculos preguiçosos e processamento distribuído.
- Vaex — para trabalhar com grandes conjuntos de dados sem carregar tudo na memória.
-
Otimização dos tipos de dados Ao ler os dados, especifique explicitamente os tipos de colunas para reduzir o consumo de memória (por exemplo, usar
categorypara colunas de strings com valores repetidos). -
Uso de bases de dados ou formatos com suporte de carregamento parcial Carregue os dados numa base de dados (por exemplo, SQLite) e execute consultas por partes.
Desta forma, combinando a leitura por partes e a otimização de tipos, pode trabalhar eficazmente com ficheiros grandes no Pandas.