Login using Social Account
     Continue with GoogleLogin using your credentials
Let us check if the dates of missing values fall in any holidays official for NYSE. A quick check at the NYSE official website would help us know the list of official holidays of NYSE.
Now that we know the list of official holidays for NYSE, we use the calendar
module and datetime
module to check if a given date in the null_dates
list is a holiday or not. We do this by:
null_dates
, and check if the day falls between 15 and 21(the possible day range of third Monday) and if the week is Monday. holidays
list. We took a list of the dates when Good Friday occurs since there is no particular way to determine it.holidays
, we filter out the holidays dates from null_dates
and store the non-holiday dates in the list non_holidays
.Copy-paste the following code to get the non_holidays
, which indicate the dates where the values are missing other than holidays.
import calendar
import datetime
holidays = []
for date in null_dates:
week, day, month, year = date.weekday(), date.day, date.month, date.year
week_day = calendar.day_name[week]
if month==1:
if day==1:
# New year day
holidays.append(date)
elif day==2 and week_day=='Monday':
# Observed New Year Day
holidays.append(date)
elif day>=15 and day<=21 and week_day=='Monday':
# Martin Luther King, Jr. Day
holidays.append(date)
elif month==2:
# Washington's Birthday
if day>=15 and day<=21 and week_day=='Monday':
holidays.append(date)
elif month==5:
# Memorial day
if day>=25 and day<=31 and week_day=='Monday':
holidays.append(date)
elif month==7:
# Independence day
if day==4:
holidays.append(date)
# Observed Independence Day
elif day==5 and week_day=='Monday':
holidays.append(date)
elif day==3 and week_day=='Friday':
holidays.append(date)
elif month == 9:
# Labour day
if day>=1 and day<=7 and week_day=='Monday':
holidays.append(date)
elif month==11:
# Thanksgiving Day
if week_day=='Thursday' and day>=22 and day<=28:
holidays.append(date)
elif month==12:
# Christmas Day
if day==25:
holidays.append(date)
# Observed Christmas Day
elif day==24 and week_day=='Friday':
holidays.append(date)
elif day==26 and week_day=='Monday':
holidays.append(date)
good_fridays = [ datetime.date(2010,4,2), datetime.date(2011,4,22), datetime.date(2012,4,6), datetime.date(2013,3,29), datetime.date(2014,4,18), datetime.date(2015,4,3), datetime.date(2016,3,25) ]
holidays = holidays + [pd.to_datetime(date) for date in good_fridays]
non_holidays = [x for x in null_dates if x not in holidays]
print(non_holidays)
We observe that the values are missing for October 29th and 30th of 2012.
Taking you to the next exercise in seconds...
Want to create exercises like this yourself? Click here.
Note - Having trouble with the assessment engine? Follow the steps listed here
Loading comments...