how to group dataframe by date on multiple cplumns df1 = a.groupby(['date'])['price'].agg(['first','max', 'min', 'last']) df2 = a.groupby(['date'])['volume'].agg(['sum']) df3 = pd.concat([df1, df2[['sum']]], axis=1) df3.head() df3a = a.groupby('date').agg({'price': ['first','max', 'min', 'last'],'volume': ['sum']}) to aggreage by date # create daily df1 = a.groupby([a['date'].dt.date]).agg({'price': ['first','max', 'min', 'last'],'volume': ['sum']}) df1.head() df1.plot()