Ответ:
Чтобы каждый ленивец имел одинаковый вес, сначала присоедините к средним значениям идентификатор вольера, затем усредните эти значения по вольеру. Предполагается, что соответствие ленивца вольеру содержится в столбцах 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()
Здесь усредняются средние значения ленивцев, а не все отдельные дневные измерения.
