Попробуйте pd.Period, добавьте новый столбец dayofyear
weather['dayofyear'] = pd.Period(weather['Date'], freq='H').dayofyear
, затем вы можете выбрать максимальный элемент для данного дня с помощью groupBy
, примерно так:
weather.groupby(['dayofyear'], sort=False)['TMAX'].max()