Pensei em trazer mais alguns dados para a discussão.
Executei uma série de testes sobre esse problema.
Usando o resource
pacote python , consegui o uso de memória do meu processo.
E escrevendo o csv em um StringIO
buffer, eu poderia facilmente medir o tamanho dele em bytes.
Fiz dois experimentos, cada um criando 20 dataframes de tamanhos crescentes entre 10.000 e 1.000.000 de linhas. Ambos com 10 colunas.
No primeiro experimento, usei apenas flutuadores em meu conjunto de dados.
É assim que a memória aumentou em comparação ao arquivo csv em função do número de linhas. (Tamanho em megabytes)
No segundo experimento, tive a mesma abordagem, mas os dados no conjunto de dados consistiam em apenas sequências curtas.
Parece que a relação entre o tamanho do csv e o tamanho do dataframe pode variar bastante, mas o tamanho na memória será sempre maior por um fator de 2-3 (para os tamanhos de quadro neste experimento)
Eu adoraria completar esta resposta com mais experimentos, por favor, comente se você quiser que eu tente algo especial.
top
e, em seguida,Shift + M
para classificar o meu uso de memória.