Cómo puedo agrupar un dataframe de pandas por la columna user_id?
Para realizar un groupby sobre un dataframe en pandas es necesario que me indiques que función, acción quieres realizar sobre la columna user_id
¿Como agrupar datos de un DataFrame por varias columnas a la vez?
En pandas, puedes agrupar datos de un DataFrame por varias columnas a la vez utilizando el método groupby(). Simplemente pasa una lista de las columnas que deseas usar para agrupar a la función groupby().

Aquí tienes un ejemplo: 

import pandas as pd

# Crea un ejemplo de DataFrame
data = {'col1': ['A', 'B', 'C', 'A', 'B', 'C'],
        'col2': ['W', 'X', 'Y', 'W', 'X', 'Y'],
        'col3': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)

# Agrupa por col1 y col2
grouped = df.groupby(['col1', 'col2'])

# Aplica una función a cada grupo
result = grouped.sum()

# Muestra el resultado
print(result)
El resultado será un nuevo DataFrame con los datos agrupados por las columnas col1 y col2, y la suma de las columnas numéricas calculadas para cada grupo:

                 
col1 col2  col3      
A    W        5
B    X        7
C    Y        9

Puedes aplicar cualquier función de agregación a cada grupo, como sum, mean, count, etc., y también puedes aplicar más de una función a la vez.