Первое что бы получить mean по группам для этого в pandas есть мощный инструмент groupby
например в вашем случае
means = data.groupby('Социальный класс').mean()
Это даст вам датафрейм где вы на группе запустили аггрегирующуюю функцию (можно не одну)
теперь к ответу на вопрос все решается в одну строчку
data["Возраст"] = data.groupby("Социальный класс").transform(lambda x: x.fillna(x.mean()))
все этот код решит ваш вопрос, для его лучшего понимания (очень рекомендую) разберитесь как следует с groupby это очень частая проблема.