Я использую пакет праздников для создания календаря календарных праздников и внес корректировку, чтобы учесть «Черную пятницу» (день после Дня благодарения в США. Всегда пятница) с относительной разницей для четвертой недели ноября, который работает для 2018 и 2020 годов, но в этом году это будет 5-я неделя ноября, что сделает мою настройку неэффективной.
Есть ли лучший способ гарантировать, что это значение всегда падает на Пятница после Дня Благодарения? Я не уверен, лучше ли использовать список праздников из пакета праздников и использовать магию панд для смещения на основе этих значений и установки праздника, или есть лучший метод манипулирования датами для достижения этой цели.
Вот мой метод:
self.append({datetime.date(datetime(year, 11, 1) + relativedelta(weekday=FR(+4))) : "Black Friday"}) # Adding Black Friday
Вот полный код:
import pandas as pd
import numpy as np
import calendar as cal
from datetime import *
from dateutil.relativedelta import *
import holidays
class CorporateHolidays(holidays.UnitedStates):
def _populate(self, year):
print(self)
# Populate the holiday list with the default US holidays
holidays.UnitedStates._populate(self, year)
# Remove Holiday Date(s)
self.pop(datetime.date(datetime(year, 10, 1) + relativedelta(weekday=MO(+2))), None) # Removing Columbus Day
# Add Holiday Date(s)
self.append({datetime.date(datetime(year, 12, 24)) : "Christmas Eve"})
self.append({datetime.date(datetime(year, 12, 31)) : "New Years Eve"})
self.append({datetime.date(datetime(year, 11, 1) + relativedelta(weekday=FR(+4))) : "Black Friday"}) # Adding Black Friday
Где print(self) отображает список как таковой:
{datetime.date(2018, 1, 1): "New Year's Day", datetime.date(2018, 1, 15): 'Martin Luther King, Jr. Day', datetime.date(2018, 2, 19): "Washington's Birthday", datetime.date(2018, 5, 28): 'Memorial Day', datetime.date(2018, 7, 4): 'Independence Day', datetime.date(2018, 9, 3): 'Labor Day', datetime.date(2018, 11, 11): 'Veterans Day', datetime.date(2018, 11, 12): 'Veterans Day (Observed)', datetime.date(2018, 11, 22): 'Thanksgiving', datetime.date(2018, 12, 25): 'Christmas Day', datetime.date(2018, 12, 24): 'Christmas Eve', datetime.date(2018, 12, 31): 'New Years Eve', datetime.date(2018, 11, 23): 'Black Friday'}....
Подробнее здесь: https://stackoverflow.com/questions/589 ... day-offset
Праздничный пакет «Панды», компенсация «Черная пятница» ⇐ Python
Программы на Python
-
Anonymous
1736780415
Anonymous
Я использую пакет праздников для создания календаря календарных праздников и внес корректировку, чтобы учесть «Черную пятницу» (день после Дня благодарения в США. Всегда пятница) с относительной разницей для четвертой недели ноября, который работает для 2018 и 2020 годов, но в этом году это будет 5-я неделя ноября, что сделает мою настройку неэффективной.
Есть ли лучший способ гарантировать, что это значение всегда падает на Пятница после Дня Благодарения? Я не уверен, лучше ли использовать список праздников из пакета праздников и использовать магию панд для смещения на основе этих значений и установки праздника, или есть лучший метод манипулирования датами для достижения этой цели.
[b]Вот мой метод:[/b]
self.append({datetime.date(datetime(year, 11, 1) + relativedelta(weekday=FR(+4))) : "Black Friday"}) # Adding Black Friday
[b]Вот полный код:[/b]
import pandas as pd
import numpy as np
import calendar as cal
from datetime import *
from dateutil.relativedelta import *
import holidays
class CorporateHolidays(holidays.UnitedStates):
def _populate(self, year):
print(self)
# Populate the holiday list with the default US holidays
holidays.UnitedStates._populate(self, year)
# Remove Holiday Date(s)
self.pop(datetime.date(datetime(year, 10, 1) + relativedelta(weekday=MO(+2))), None) # Removing Columbus Day
# Add Holiday Date(s)
self.append({datetime.date(datetime(year, 12, 24)) : "Christmas Eve"})
self.append({datetime.date(datetime(year, 12, 31)) : "New Years Eve"})
self.append({datetime.date(datetime(year, 11, 1) + relativedelta(weekday=FR(+4))) : "Black Friday"}) # Adding Black Friday
[b]Где print(self) отображает список как таковой:[/b]
{datetime.date(2018, 1, 1): "New Year's Day", datetime.date(2018, 1, 15): 'Martin Luther King, Jr. Day', datetime.date(2018, 2, 19): "Washington's Birthday", datetime.date(2018, 5, 28): 'Memorial Day', datetime.date(2018, 7, 4): 'Independence Day', datetime.date(2018, 9, 3): 'Labor Day', datetime.date(2018, 11, 11): 'Veterans Day', datetime.date(2018, 11, 12): 'Veterans Day (Observed)', datetime.date(2018, 11, 22): 'Thanksgiving', datetime.date(2018, 12, 25): 'Christmas Day', datetime.date(2018, 12, 24): 'Christmas Eve', datetime.date(2018, 12, 31): 'New Years Eve', datetime.date(2018, 11, 23): 'Black Friday'}....
Подробнее здесь: [url]https://stackoverflow.com/questions/58938002/pandas-holiday-package-black-friday-offset[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия