first, last = ('2011-01-07', datetime.time(15)), ('2011-01-10', datetime.
    time(13, 30))
df.stack().loc[first:last].min()
Pandas DataFrame: How to natively get minimum across range of rows and columns