def splitDates(self, colName): import everything date = self.X[colName] self.X['month'] = date.map(lambda x: x.month) self.X['quarter'] = date.map(lambda x: x.quarter) hours = date.map(lambda x: x.hour) self.X['dayofweek'] = date.map(lambda x: x.dayofweek) self.X['timeofday'] = hours.map(lambda x: 4 * int(x > 22 or x < 6) + 3 * int(17 < x < 23) + 2 * int(11 < x < 18) + int(5 < x < 12)) self.X['weekend'] = self.X['dayofweek'].map(lambda x: int(x > 5)) self.X.drop([colName], axis=1, inplace=True) months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] daysofweek = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'] timesofday = ['Morning','Afternoon','Evening','Night'] isweekend = ['weekend','weekday'] quarters = ['q1','q2','q3','q4'] self.ref['month'] = everything.dictFromList(months,range(1,len(months)+1)) self.ref['dayofweek'] = everything.dictFromList(daysofweek) self.ref['timeofday'] = everything.dictFromList(timesofday,range(1,len(timesofday)+1)) self.ref['quarter'] = everything.dictFromList(quarters,range(1,len(quarters)+1)) self.ref['weekend'] = everything.dictFromList(isweekend)
def cleanAddress(self): import everything self.X['AddHasBlock'] = self.X['Address'].map(lambda x: int('block' in str(x).lower())) self.X.drop(['Address'],axis=1, inplace=True) self.ref['AddHasBlock'] = everything.dictFromList(['have block','not have block'])