Pandas: df.groupby () es demasiado lento para el conjunto de datos grandes. ¿Algún método alternativo?

df = df.groupby(df.index).sum()

Tengo un dataframe con 3.8 millones de filas (una sola columna), y estoy tratando de agruparlos por índice. Pero lleva una eternidad terminar el cómputo. ¿Hay formas alternativas de tratar con un conjunto de datos muy grande? ¡¡¡¡Gracias por adelantado!!!!

Estoy escribiendo en Python.

Los datos se ven como abajo. El índice es la identificación del cliente. Quiero agrupar el qty_liter por el Index .

df = df.groupby(df.index).sum()

Pero esta línea de código está tomando demasiado tiempo …

introduzca la descripción de la imagen aquí

La información sobre este df está abajo:

df.info()

Index: 3842595 entries, -2147153165 to \N Data columns (total 1 columns): qty_liter object dtypes: object(1) memory usage: 58.6+ MB

El problema es que sus datos no son numéricos. Procesar cadenas lleva mucho más tiempo que procesar números. Prueba esto primero

 df.index = df.index.astype(int) df.qty_liter = df.qty_liter.astype(float) 

Entonces haz groupby() otra vez. Debería ser mucho más rápido. Si es así, vea si puede modificar su paso de carga de datos para tener los tipos adecuados desde el principio.