Grupo de Python Pandas por múltiples columnas, media de otra, sin grupo por objeto

Tengo algunos datos que se parecen a esto, y se llama 'test_df'

  ID  Year  Value  Value2
0  A  2012      1       4
1  A  2012      2       5
2  A  2013      4       6
3  A  2013      5       7
4  B  2014      6       8
5  B  2014      7       4
6  B  2013      8       8

Quiero que se vea así:

ID Year  Value_avg  Value2_avg
A  2012  1.5        4.5
A  2013  4.5        6.5
B  2013  8.0        8.0
B  2014  6.5        6.0

Sin embargo, cuando trato de agrupar por varias columnas, terminan como grupos por objetos:

         Value_avg  Value2_avg
ID Year
A  2012        1.5         4.5
   2013        4.5         6.5
B  2013        8.0         8.0
   2014        6.5         6.0

Aquí está el código que probé:

out_df = pd.DataFrame()
out_df['Value_avg'] = test_df['Value'].groupby([test_df['ID'], test_df['Year']]).mean()
out_df['Value2_avg'] = test_df['Value2'].groupby([test_df['ID'], test_df['Year']]).mean()

Intenté agregar:

out_df['Value_avg'] = test_df['Value'].groupby([test_df['ID'], 
test_df['Year']], as_index=False).mean()

pero tengo este error:

"TypeError: as_index=False only valid with DataFrame"

Respuestas a la pregunta(1)

Su respuesta a la pregunta