I have one column, and another is datetime which is in index position I done some coding on this. I try to use for loop for below condition but need optimization or list comprehension.
date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(254), freq='D')
dd = pd.DataFrame()
cc = sorted(np.random.randint(0,32,255))
dd['mean_base'] = cc
dd['time'] = days
dd.set_index('time',inplace=True)
rle = [(k, sum(1 for i in g)) for k,g in itertools.groupby(dd['mean_base'])]
# output Ex: rle = [(66,3),(35,12),(66,185),(35,190)]
count1 = 0
for i in rle:
if i[0] >= 65:
if i[1] >= 185:
count1 += 1
else:
pass
# Suggested by someone
count2 = sum([np.floor(i[1]/rolling_window) for i in rle if i[0]>=1])
# I didn't get this. (May be need changes)
print(count1)
#output: 1
screenshot
Is there any other way or how can I use list comprehension or code optimization?