df = pd.DataFrame({'Col1': 16 * ['A', 'B', 'C'], 'Col2': np.random.rand(48),
    'Col3': np.random.randint(5, 20, 48)}, index=pd.date_range('2017-01-01',
    periods=48, freq='H'))
Средневзвешенное значение, сгруппированное по дням, из 2 столбцов на основе критериев в 3-м столбце кадра данных pandas