With a more recent version of Pandas, there is a resample
method. It is very fast and is useful to accomplish the same task:
ohlc_dict = {
'Open': 'first',
'High': 'max',
'Low': 'min',
'Close': 'last',
'Volume': 'sum',
}
df.resample('5T', closed='left', label="left").apply(ohlc_dict)