print(df.groupby(df['date'].values.astype('<M8[h]')).Item.apply(lambda x: x
    .unique().tolist()).to_dict())
{Timestamp('2016-11-06 09:00:00'): ['Item1', 'Item3', 'Item4'], Timestamp(
    '2016-12-06 09:00:00'): ['Item1', 'Item3', 'Item4'], Timestamp(
    '2016-12-06 10:00:00'): ['Item1', 'Item2'], Timestamp(
    '2016-12-06 11:00:00'): ['Item1']}
Pandas groupпо часам дня в словарь