Ответ:

Чтобы каждый ленивец имел одинаковый вес, сначала присоедините к средним значениям идентификатор вольера, затем усредните эти значения по вольеру. Предполагается, что соответствие ленивца вольеру содержится в столбцах sloth_id и enclosure_id таблицы df.

sloth_enclosures = df[['sloth_id', 'enclosure_id']].drop_duplicates()

sloth_means = sloth_means.merge(sloth_enclosures, on='sloth_id', how='left')

enclosure_means = sloth_means.groupby('enclosure_id', as_index=False)['sleep_hours'].mean()

Здесь усредняются средние значения ленивцев, а не все отдельные дневные измерения.