pandas groupby com sum () em arquivo csv grande?

Tenho um arquivo grande (19 GB ou mais) que desejo carregar na memória para realizar uma agregação em algumas colunas.

o arquivo fica assim:

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

observe que, estou usando as colunas (id, col1) para a agregação após o carregamento no quadro de dados, observe também que essas chaves podem ser repetidas sucessivamente por algumas vezes, como:

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

Para um arquivo pequeno, o script a seguir pode fazer o trabalho

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

No entanto, para um arquivo grande, preciso usar chunksize ao ler o arquivo csv para limitar o número de linhas carregadas na memória:

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()

Neste último caso, haverá um problema se as linhas em que (id, col1) forem semelhantes forem divididas em arquivos diferentes. Como posso lidar com isso?

EDITAR

Como apontado por @EdChum, existe uma solução potencial, que énão basta anexar os resultados do groupby a um novo csv, ler novamente e realizar a agregação novamente até que o tamanho do df não seja alterado.

Isso, no entanto, tem um cenário de pior caso que não é tratado, ou seja:

quando todos os arquivos (ou arquivos suficientes que a memória não pode suportar) têm a mesma problemática semelhante (id, col1) no final. Isso fará com que o sistema retorne um MemoryError

questionAnswers(2)

yourAnswerToTheQuestion