import pandas as pd
l1 = ['Date' ,'Size', 'Price']
l2 = [['4/17/2019', 3 ,71.00],
['4/17/2019', 3, 70.12],
['4/17/2019' ,3, 69.00],
['4/17/2019', 3, 71.55],
['4/17/2019', 50, 73.45],
['4/17/2019', 50, 72.45],
['4/17/2019', 50, 71.45],
['4/17/2019', 50, 70.45],
['4/18/2019', 50, 70.45]]
df = pd.DataFrame(l2, columns =l1)
df['Date'] = pd.to_datetime(df['Date']) #making sure its dtype is date
## sort based on price, then group it based on Date then aggregate the min and max values
sorted_grouped_agg = df.sort_values(by=['Price']).groupby('Date').agg(['min','max'])
print(sorted_grouped_agg)
####### Output #######
Size Price
min max min max
Date
2019-04-17 3 50 69.00 73.45
2019-04-18 50 50 70.45 70.45
#################################