class Seasonality: type_to_period = { "weekday": 7, "weekofyear": 53, "month": 12, "weekofmonth": 5, "hour": 24, } type_datetime_to_int_func = { "weekday": lambda dt: dt.weekday(), "weekofyear": lambda dt: dt.isocalendar()[1] - 1, "month": lambda dt: dt.month - 1, "weekofmonth": lambda dt: dt.day // 7, "hour": lambda dt: dt.hour } def __init__(self, seasonality_type): assert seasonality_type in self.type_to_period, \ "Invalid seasonality! Needs to be in %s!" % self.type_to_period.keys() self.seasonality_type = seasonality_type self.seasonal_period = self.type_to_period[self.seasonality_type] self._datetime_to_int_func = self.type_datetime_to_int_func[ self.seasonality_type] def datetime_to_array(self, arr): return np.vectorize(self._datetime_to_int_func)(arr) def _get_next_x(self, last_date, increment, n_next): new_dates = last_date + increment * np.arange(1, n_next + 1) return self.datetime_to_array(new_dates) def apply_decoder(self, apply_to): return apply_to / self._decoder def apply_encoder(self, apply_to): return apply_to * self._encoder def get_model_inputs(self): return self._inputs def plot_seasonality(self): import matplotlib.pyplot as plt weights = self.get_weights() if len(weights.shape) > 1 and weights.shape[1] == self.seasonal_period: weights = weights.T plt.figure() plt.plot(weights) plt.title(self.seasonality_type, fontsize=15)
def _format_date(datetime): return datetime.strftime( "%A, %b %d, %Y (week {week})".format(week=datetime.isocalendar()[1]) )
def _format_date(datetime: datetime.datetime) -> str: return datetime.strftime( "%A, %b %d, %Y (week {week})".format(week=datetime.isocalendar()[1]))
from datetime import datetime pattern = '%H:%M:%S %d-%m-%Y' result = datetime.strptime(datetime_string, pattern).isoformat() # ЗАДАЧА №5 # В переменной time_shift хранится целое число. Необходимо определить # порядковый номер недели в году (ISO 8601), на дату со сдвигом от # текущей на количество дней хранящееся в time_shift. from datetime import datetime from datetime import timedelta result = datetime.isocalendar(datetime.now() + timedelta(days=time_shift))[1] # ЗАДАЧА №6 from collections import Counter, OrderedDict, defaultdict result = defaultdict(list) for operation in history: date, oper_type = operation['access_date'], operation['access_type'] result[date].append(oper_type) for key, value in result.items(): result[key] = dict(Counter(value)) result = OrderedDict(sorted(result.items(), key=lambda x: x[0]))
print("#########################################################") print("Diferencia de dos fechas (date)") hoy = date.today() navidad_año_proximo = date(2024, 12, 25) faltan = navidad_año_proximo - hoy print("Hoy:", hoy) print("La navidad del 2024", navidad_año_proximo) print("Faltan", faltan.days, "días") print("Expresar una fecha en formato largo") print("Hoy es...", datetime.ctime(fecha1)) print( "A partir de una fecha se obtiene tupla con año, nº semana y día de semana" ) print("Fecha", fecha1, "Año, nº sem., día sem.:", datetime.isocalendar(fecha1)) print( "A partir de una fecha se obtiene tupla con año, nº semana y día de semana" ) print("También, se muestra el día de la semana en letras (abreviado).") print("Desglose de la fecha", fecha2, ":") tupla_mensajes = ("Año", "Núm. semana", "Núm. día de semana") tupla_valores = datetime.isocalendar(fecha2) tupla_diassem = ("Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom") for mensaje, valor in zip(tupla_mensajes, tupla_valores): print(mensaje, "-->", valor) print("Día de semana-->", tupla_diassem[tupla_valores[2] - 1]) print(input(" continuar?"))
#Clase_fechas_Ej_018 print("Diferencia de dos fechas (date)") hoy = date.today() navidad_año_proximo = date(2024, 12, 25) faltan = navidad_año_proximo - hoy print ("Hoy:", hoy) print ("La navidad del 2024", navidad_año_proximo) print ("Faltan", faltan.days, "días") print("Expresar una fecha en formato largo") print("Hoy es...", datetime.ctime(fecha1)) print("A partir de una fecha se obtiene tupla con año, nº semana y día de semana") print("Fecha", fecha1, "Año, nº sem., día sem.:", datetime.isocalendar(fecha1)) print("A partir de una fecha se obtiene tupla con año, nº semana y día de semana") print("También, se muestra el día de la semana en letras (abreviado).") print("Desglose de la fecha", fecha2,":") tupla_mensajes = ("Año", "Núm. semana", "Núm. día de semana") tupla_valores = datetime.isocalendar(fecha2) tupla_diassem = ("Lun", "Mar", "Mié", "Jue","Vie", "Sáb","Dom") for mensaje,valor in zip(tupla_mensajes, tupla_valores): print(mensaje,"-->", valor) print("Día de semana-->", tupla_diassem[tupla_valores[2]-1]) nuevo(18,"inicio"); #################################################################