I have grouped my data. Now, what I am trying to do is to select the highest from the \'high\' column and select the lowest from the \'low\' column in each week, then use th
Is that what you want?
In [67]: df
Out[67]:
Open High Low Close Volume Adj Close Week
Date
2015-09-14 116.580002 116.889999 114.860001 115.309998 58363400 112.896168 2015-09-18
2015-09-15 115.930000 116.529999 114.419998 116.279999 43341200 113.845864 2015-09-18
2015-09-16 116.250000 116.540001 115.440002 116.410004 37173500 113.973148 2015-09-18
2015-09-17 115.660004 116.489998 113.720001 113.919998 64112600 111.535266 2015-09-18
2015-09-18 112.209999 114.300003 111.870003 113.449997 74285300 111.075104 2015-09-18
2015-09-21 113.669998 115.370003 113.660004 115.209999 50222000 112.798263 2015-09-25
2015-09-22 113.379997 114.180000 112.519997 113.400002 50346200 111.026155 2015-09-25
2015-09-23 113.629997 114.720001 113.300003 114.320000 35756700 111.926895 2015-09-25
2015-09-24 113.250000 115.500000 112.370003 115.000000 50219500 112.592660 2015-09-25
2015-09-25 116.440002 116.690002 114.019997 114.709999 56151900 112.308730 2015-09-25
In [68]: df.groupby('Week').apply(lambda x: x.High.max() - x.Low.min())
Out[68]:
Week
2015-09-18 5.019996
2015-09-25 4.319999
dtype: float64
Setup DF:
In [75]: from pandas_datareader import data as web
In [76]: df = web.DataReader('aapl', 'yahoo', '2015-09-14', '2015-09-25')
In [77]: df.ix[:5, 'Week'] = df.index[df.index.weekday == 4][0]
In [78]: df.ix[5:, 'Week'] = df.index[df.index.weekday == 4][-1]
In [79]: df
Out[79]:
Open High Low Close Volume Adj Close Week
Date
2015-09-14 116.580002 116.889999 114.860001 115.309998 58363400 112.896168 2015-09-18
2015-09-15 115.930000 116.529999 114.419998 116.279999 43341200 113.845864 2015-09-18
2015-09-16 116.250000 116.540001 115.440002 116.410004 37173500 113.973148 2015-09-18
2015-09-17 115.660004 116.489998 113.720001 113.919998 64112600 111.535266 2015-09-18
2015-09-18 112.209999 114.300003 111.870003 113.449997 74285300 111.075104 2015-09-18
2015-09-21 113.669998 115.370003 113.660004 115.209999 50222000 112.798263 2015-09-25
2015-09-22 113.379997 114.180000 112.519997 113.400002 50346200 111.026155 2015-09-25
2015-09-23 113.629997 114.720001 113.300003 114.320000 35756700 111.926895 2015-09-25
2015-09-24 113.250000 115.500000 112.370003 115.000000 50219500 112.592660 2015-09-25
2015-09-25 116.440002 116.690002 114.019997 114.709999 56151900 112.308730 2015-09-25