I am looking for adding a 1 in an InRange cell if any date in ipu is between the date range in Date_range and a 0 if not.
List of tuples:
ipu = [('2016-05-31', '5,000'),('2015-03-06', '2,920')]
df:
Date Date_range InRange
0 2016-07-26 [2016-07-26, 2016-04-26] NaN
1 2016-04-26 [2016-04-26, 2016-01-26] NaN
2 2016-01-26 [2016-01-26, 2015-10-27] NaN
3 2015-10-27 [2015-10-27, 2015-07-21] NaN
4 2015-07-21 [2015-07-21, 2015-04-27] NaN
5 2015-04-27 [2015-04-27, 2015-01-27] NaN
6 2015-01-27 [2015-01-27, 2014-10-20] NaN
7 2014-10-20 [2014-10-20, 2014-07-22] NaN
8 2014-07-22 [2014-07-22, 2014-04-23] NaN
9 2014-04-23 [2014-04-23, 2014-01-27] NaN
10 2014-01-27 [2014-01-27, 2013-10-28] NaN
11 2013-10-28 [2013-10-28, 2013-07-23] NaN
12 2013-07-23 NaN NaN
Desired output:
Date Date_range InRange
0 2016-07-26 [2016-07-26, 2016-04-26] 1
1 2016-04-26 [2016-04-26, 2016-01-26] 0
2 2016-01-26 [2016-01-26, 2015-10-27] 0
3 2015-10-27 [2015-10-27, 2015-07-21] 0
4 2015-07-21 [2015-07-21, 2015-04-27] 0
5 2015-04-27 [2015-04-27, 2015-01-27] 1
6 2015-01-27 [2015-01-27, 2014-10-20] 0
7 2014-10-20 [2014-10-20, 2014-07-22] 0
8 2014-07-22 [2014-07-22, 2014-04-23] 0
9 2014-04-23 [2014-04-23, 2014-01-27] 0
10 2014-01-27 [2014-01-27, 2013-10-28] 0
11 2013-10-28 [2013-10-28, 2013-07-23] 0
12 2013-07-23 NaN 0
This is the code that I tried:
for i in range(len(df.index)-1):
for r in range(len(ipu)):
df.loc[(df['Date_range'][i][0] > ipu[r][0]) & (df['Date_range'][i][1] <= ipu[r]), 'InRange'[i]] = 1
I am getting:
KeyError: 'cannot use a single bool to index into setitem'
I looked at
but was not clear how to apply it to my case.
I know I am halfway with my code but I am stuck ...I appreciate some orientation.
Thanks