Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def datetime_range(start, end, delta):
- current = start
- while current < end:
- yield current
- current += delta
- import pandas as pd
- import numpy as np
- import cProfile
- from datetime import timedelta, date, datetime
- #inputs
- empty_data = pd.DataFrame(columns=['store','timestamp'])
- start_dt = date(2019, 1, 1)
- days = 365
- data = "input data | attached to the post"
- for i in range(days):
- for j in range(len(data.store)):
- curr_date = start_dt + timedelta(days=i)
- curr_date_year = curr_date.year
- curr_date_month = curr_date.month
- curr_date_day = curr_date.day
- weekno = curr_date.weekday()
- if weekno<5:
- dts = [dt.strftime('%Y-%m-%d %H:%M') for dt in
- datetime_range(datetime(curr_date_year,curr_date_month,curr_date_day,data['m_f_open_hrs'].iloc[j],data['m_f_open_min'].iloc[j]), datetime(curr_date_year,curr_date_month,curr_date_day, data['m_f_close_hrs'].iloc[j],data['m_f_close_min'].iloc[j]),
- timedelta(minutes=15))]
- vert = pd.DataFrame(dts,columns = ['timestamp'])
- vert['store']= data['store'].iloc[j]
- empty_data = pd.concat([vert, empty_data])
- elif weekno==5:
- dts = [dt.strftime('%Y-%m-%d %H:%M') for dt in
- datetime_range(datetime(curr_date_year,curr_date_month,curr_date_day,data['sat_open_hrs'].iloc[j],data['sat_open_min'].iloc[j]), datetime(curr_date_year,curr_date_month,curr_date_day, data['sat_close_hrs'].iloc[j],data['sat_close_min'].iloc[j]),
- timedelta(minutes=15))]
- vert = pd.DataFrame(dts,columns = ['timestamp'])
- vert['store']= data['store'].iloc[j]
- empty_data = pd.concat([vert, empty_data])
- else:
- dts = [dt.strftime('%Y-%m-%d %H:%M') for dt in
- datetime_range(datetime(curr_date_year,curr_date_month,curr_date_day,data['sun_open_hrs'].iloc[j],data['sun_open_min'].iloc[j]), datetime(curr_date_year,curr_date_month,curr_date_day, data['sun_close_hrs'].iloc[j],data['sun_close_min'].iloc[j]),
- timedelta(minutes=15))]
- vert = pd.DataFrame(dts,columns = ['timestamp'])
- vert['store']= data['store'].iloc[j]
- empty_data = pd.concat([vert, empty_data])
- final_data = empty_data
Add Comment
Please, Sign In to add comment