Glad to help. There are a couple of subtleties to watch out for when selecting absolute times (eg between 9:30-10:00) and when using the 'groupby' method.
First, converting to Eastern Time is more than just for easier reading, it's required because of Daylight Saving Time. If one were to do the same 'between_time' but with the UTC values, the results would be 'off' by an hour during summer time. The 'convert_tz' method is smart and not only offsets for the timezone but also for Daylight Saving Time. Furthermore, the method also adjusts correctly for dates in the past when Daylight Saving Time started at different times (eg in 2009 the US extended DST).
Second, the 'TimeGrouper' method adds missing datetime indexes and puts NaN values for the column data. If one uses the 'TimeGrouper' method and specifies 'Days' (note the 'D' parameter) like this
daily_groups = prices_et.between_time('9:31', '9:35').groupby(pd.TimeGrouper('D'))
The result will magically add a number of rows for weekends in the data and the associated data will be NaN. This can mostly be avoided by using the 'B' parameter which groups by Business days (ie no weekends). However, this still may create issues if the market is closed on a particular business day. Again, the method will add rows with NaN data. I typically just use 'dropna' to avoid this but just a word of caution if this isn't the desired behavior.
daily_averages = daily_groups.mean().dropna()