cómo calcular la sum | media | mediana para la cola de cada grupo cuando se agregan datos de pandas en python

Tengo datos como el siguiente. que está en formato de dataframe pandas.

ABCDEFG 1 1 2 3 1 4 2 1 1 2 4 5 6 7 1 1 2 3 2 3 2 1 1 2 4 5 6 7 2 1 2 3 2 3 4 2 1 2 3 4 3 3 2 1 2 4 5 6 7 

aquí agg_lvl = [‘A’, ‘B’, ‘C’]

Quiero calcular la media | mediana | sum para la variable G usando registros de cola (2) en cada grupo cuando los datos se agregan a agg_lvl.

Y mi salida esperada es así:

salida esperada para la media:

     ABCG 1 1 2 4.5 2 1 2 5 

    la salida será igual para la mediana y la sum también, pero en lugar de la media debemos considerar los valores de la mediana y la sum.

    para eso probé el siguiente código pero no obtuve el resultado esperado.

     df.groupby(agg_lvl,as_index=False).tail(2).agg({'G':'mean'}) 

    ¿Alguien puede ayudarme a abordar este problema.

    Gracias por adelantado.

    Utilice GroupBy.transform lugar de agg para devolver una nueva columna con la misma forma que el DataFrame filtrado por tail :

     agg_lvl=['A','B','C'] df = df.groupby(agg_lvl,as_index=False).tail(2) df['G'] = df.groupby(agg_lvl)['G'].transform('mean') print (df) ABCDEFG 2 1 1 2 3 2 3 4.5 3 1 1 2 4 5 6 4.5 5 2 1 2 3 4 3 5.0 6 2 1 2 4 5 6 5.0 

    EDITAR:

     df = df.groupby(agg_lvl,as_index=False).tail(2).groupby(agg_lvl,as_index=False)['G'].mean() print (df) ABCG 0 1 1 2 4.5 1 2 1 2 5.0