Pensé que aportaría más datos a la discusión.
Realicé una serie de pruebas sobre este tema.
Al usar el resource
paquete python obtuve el uso de memoria de mi proceso.
Y escribiendo el csv en un StringIO
búfer, pude medir fácilmente su tamaño en bytes.
Ejecuté dos experimentos, cada uno creando 20 marcos de datos de tamaños crecientes entre 10,000 líneas y 1,000,000 de líneas. Ambos tienen 10 columnas.
En el primer experimento, usé solo flotantes en mi conjunto de datos.
Así es como la memoria aumentó en comparación con el archivo csv en función del número de líneas. (Tamaño en megabytes)
En el segundo experimento tuve el mismo enfoque, pero los datos en el conjunto de datos consistían solo en cadenas cortas.
Parece que la relación entre el tamaño del csv y el tamaño del marco de datos puede variar bastante, pero el tamaño en la memoria siempre será mayor en un factor de 2-3 (para los tamaños de marco en este experimento)
Me encantaría completar esta respuesta con más experimentos, comenta si quieres que pruebe algo especial.
top
y despuésShift + M
de ordenar mi uso de la memoria.