¿Cómo obtener la media de la columna sólo para filas específicas?

Necesito obtener la media de una columna (aquí: puntuación) para filas específicas (aquí: años). Específicamente, me gustaría saber el puntaje promedio de tres períodos:

periodo 1: año <= 1983periodo 2: año> = 1984 y año <= 1990periodo 3: año> = 1991

Esta es la estructura de mis datos:

  country year     score        
 Algeria 1980     -1.1201501 
 Algeria 1981     -1.0526943 
 Algeria 1982     -1.0561565 
 Algeria 1983     -1.1274560 
 Algeria 1984     -1.1353926 
 Algeria 1985     -1.1734330 
 Algeria 1986     -1.1327666 
 Algeria 1987     -1.1263586 
 Algeria 1988     -0.8529455 
 Algeria 1989     -0.2930265 
 Algeria 1990     -0.1564207 
 Algeria 1991     -0.1526328 
 Algeria 1992     -0.9757842 
 Algeria 1993     -0.9714060 
 Algeria 1994     -1.1422258 
 Algeria 1995     -0.3675797 
 ...

Los valores medios calculados deben agregarse a la df en una columna adicional ("media"), es decir, el mismo valor medio para los años del período 1, para los del período 2, etc.

Así es como debería verse:

country year     score         mean   
 Algeria 1980     -1.1201501     -1.089
 Algeria 1981     -1.0526943     -1.089
 Algeria 1982     -1.0561565     -1.089
 Algeria 1983     -1.1274560     -1.089
 Algeria 1984     -1.1353926     -0.839
 Algeria 1985     -1.1734330     -0.839
 Algeria 1986     -1.1327666     -0.839
 Algeria 1987     -1.1263586     -0.839
 Algeria 1988     -0.8529455     -0.839
 Algeria 1989     -0.2930265     -0.839
 Algeria 1990     -0.1564207     -0.839
 ...

Todos los caminos posibles que probé se complicaron mucho, y tengo que calcular las puntuaciones medias para diferentes períodos de tiempo para más de 90 países ...

¡Muchas, muchas gracias por tu ayuda!

Respuestas a la pregunta(2)

Su respuesta a la pregunta