inspired by the answer of @mcskinner, you can use .resample() in place of lambda function.
.resample()
lambda
y = y.groupby('user').resample('H', level = 'datehour').y