pandas groupby con sum () en un gran archivo csv?

Tengo un archivo grande (19 GB más o menos) que quiero cargar en la memoria para realizar una agregación en algunas columnas.

el archivo se ve así:

id, col1, col2, col3, 
1 ,  12 , 15 , 13 
2 ,  18 , 15 , 13 
3 ,  14 , 15 , 13 
3 ,  14 , 185 , 213 

Tenga en cuenta que, estoy usando las columnas (id, col1) para la agregación después de cargar en el marco de datos, tenga en cuenta también que estas claves pueden repetirse sucesivamente varias veces, como:

3 ,  14 , 15 , 13 
3 ,  14 , 185 , 213 

Para un archivo pequeño, el siguiente script puede hacer el trabajo

import pandas as pd
data = pd.read_csv("data_file", delimiter=",")
data = data.reset_index(drop=True).groupby(["id","col1"], as_index=False).sum()

Sin embargo, para un archivo grande, necesito usar chunksize al leer el archivo csv para limitar el número de filas cargadas en la memoria:

import pandas as pd
data = pd.read_csv("data_file", delimiter=",", chunksize=1000000)
data = data.reset_index(drop=True).groupby(["id","col1"], as_index=False).sum()

En el último caso, habrá un problema si las filas donde (id, col1) son similares se dividen en diferentes archivos. ¿Cómo puedo lidiar con eso?

EDITAR

Como señaló @EdChum, existe una posible solución, que esno solo agregue los resultados de groupby a un nuevo csv y vuelva a leerlo y realice la agregación nuevamente hasta que el tamaño de df no cambie.

Esto, sin embargo, tiene el peor de los casos que no se maneja, es decir:

cuando todos los archivos (o suficientes archivos como la memoria no puede manejar) tienen la misma problemática similar (id, col1) al final. Esto hará que el sistema devuelva un error de memoria

Respuestas a la pregunta(2)

Su respuesta a la pregunta