def bus_day_of_month_seasonality( self, data_frame, month_list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], cum=True, cal="FX", partition_by_month=True, ): tsc = TimeSeriesCalcs() tsf = TimeSeriesFilter() data_frame.index = pandas.to_datetime(data_frame.index) data_frame = tsf.filter_time_series_by_holidays(data_frame, cal) monthly_seasonality = tsc.average_by_month_day_by_bus_day(data_frame, cal) monthly_seasonality = monthly_seasonality.loc[month_list] if partition_by_month: monthly_seasonality = monthly_seasonality.unstack(level=0) if cum is True: monthly_seasonality.ix[0] = numpy.zeros(len(monthly_seasonality.columns)) if partition_by_month: monthly_seasonality.index = monthly_seasonality.index + 1 # shifting index monthly_seasonality = monthly_seasonality.sort() # sorting by index monthly_seasonality = tsc.create_mult_index(monthly_seasonality) return monthly_seasonality
def bus_day_of_month_seasonality(self, data_frame, month_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], cum = True, cal = "FX", partition_by_month = True, add_average = False, price_index = False): tsc = TimeSeriesCalcs() tsf = TimeSeriesFilter() if price_index: data_frame = data_frame.resample('B') # resample into business days data_frame = tsc.calculate_returns(data_frame) data_frame.index = pandas.to_datetime(data_frame.index) data_frame = tsf.filter_time_series_by_holidays(data_frame, cal) monthly_seasonality = tsc.average_by_month_day_by_bus_day(data_frame, cal) monthly_seasonality = monthly_seasonality.loc[month_list] if partition_by_month: monthly_seasonality = monthly_seasonality.unstack(level=0) if add_average: monthly_seasonality['Avg'] = monthly_seasonality.mean(axis=1) if cum is True: if partition_by_month: monthly_seasonality.loc[0] = numpy.zeros(len(monthly_seasonality.columns)) # monthly_seasonality.index = monthly_seasonality.index + 1 # shifting index monthly_seasonality = monthly_seasonality.sort() monthly_seasonality = tsc.create_mult_index(monthly_seasonality) return monthly_seasonality
def dump_indicators(self): tsf = TimeSeriesFilter() self.logger.info("About to write all indicators to CSV") self.indicator.to_csv(self._csv_indicator_dump, date_format='%d/%m/%Y') if (self._csv_econ_indicator_dump is not None): self.logger.info("About to write economy based indicators to CSV") self.indicator_econ.to_csv(self._csv_econ_indicator_dump, date_format='%d/%m/%Y') self.logger.info("About to write final indicators to CSV") # remove weekends and remove start of series if (self._csv_final_indicator_dump is not None): indicator_final_copy = tsf.filter_time_series_by_holidays(self.indicator_final, cal = 'WEEKDAY') indicator_final_copy = tsf.filter_time_series_by_date( start_date="01 Jan 2000", finish_date = None, data_frame=indicator_final_copy) indicator_final_copy.to_csv(self._csv_final_indicator_dump, date_format='%d/%m/%Y')
def bus_day_of_month_seasonality( self, data_frame, month_list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], cum=True, cal="FX", partition_by_month=True, add_average=False, price_index=False): tsc = TimeSeriesCalcs() tsf = TimeSeriesFilter() if price_index: data_frame = data_frame.resample( 'B') # resample into business days data_frame = tsc.calculate_returns(data_frame) data_frame.index = pandas.to_datetime(data_frame.index) data_frame = tsf.filter_time_series_by_holidays(data_frame, cal) monthly_seasonality = tsc.average_by_month_day_by_bus_day( data_frame, cal) monthly_seasonality = monthly_seasonality.loc[month_list] if partition_by_month: monthly_seasonality = monthly_seasonality.unstack(level=0) if add_average: monthly_seasonality['Avg'] = monthly_seasonality.mean(axis=1) if cum is True: if partition_by_month: monthly_seasonality.loc[0] = numpy.zeros( len(monthly_seasonality.columns)) # monthly_seasonality.index = monthly_seasonality.index + 1 # shifting index monthly_seasonality = monthly_seasonality.sort() monthly_seasonality = tsc.create_mult_index(monthly_seasonality) return monthly_seasonality
def dump_indicators(self): tsf = TimeSeriesFilter() self.logger.info("About to write all indicators to CSV") self.indicator.to_csv(self._csv_indicator_dump, date_format='%d/%m/%Y') if (self._csv_econ_indicator_dump is not None): self.logger.info("About to write economy based indicators to CSV") self.indicator_econ.to_csv(self._csv_econ_indicator_dump, date_format='%d/%m/%Y') self.logger.info("About to write final indicators to CSV") # remove weekends and remove start of series if (self._csv_final_indicator_dump is not None): indicator_final_copy = tsf.filter_time_series_by_holidays( self.indicator_final, cal='WEEKDAY') indicator_final_copy = tsf.filter_time_series_by_date( start_date="01 Jan 2000", finish_date=None, data_frame=indicator_final_copy) indicator_final_copy.to_csv(self._csv_final_indicator_dump, date_format='%d/%m/%Y')