TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.43K subscribers
Post #138 1.36K
🧳 Рабочий кейс

Недавно с коллегой обсуждали задачу:

Нужно запускать расчеты по разным продуктам с разной начальной датой, чтобы не дублировать уже загруженную инфу.

1️⃣ Первая версия кода была такая - каждой функции по циклу:

for dt in pd.date_range(start_dt1, end_dt):
load1(start_dt1)

for dt in pd.date_range(start_dt2, end_dt):
load2(start_dt2)


И таких функций 10. 20. А Хотелось компактно организовать🎁

2️⃣ Вторая версия - итерируемся от минимальной даты и навешиваем условие перед запуском каждой функции:

min_dt = min(start_dt1, start_dt2)

for dt in pd.date_range(min_dt, end_dt):
if dt >= start_dt1:
load1(dt)
elif dt >= start_dt2:
load2(dt)

Тоже с условиями слишком громоздко🏔

3️⃣ В итоге мы дошли до такой финальной версии:
⭐️создаем функцию для генерации цикла по датам
⭐️создаем список функций с датами
⭐️передаем функции как аргументы

def loop(start_dt, end_dt, func):
for dt in pd.date_range(start_dt, end_dt):
func(dt)


func_list = [(load1, start_dt1), (load2, start_dt2)]

for func, dt in func_list:
loop(dt, end_dt, func)


Чтобы добавить новую функцию, теперь достаточно дописать ее в func_list.
А у вас есть идеи элегантного решения?
  • 🔥 6
  • ❤‍🔥 4
  • ❤ 1
More from @data_engineerette
  1. Oct 2, 2026Lance Недавно ковырялась в инструменте для обслуживания таблиц Apache Amoro и наткнулась н…
  2. Sep 30, 20265 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и…
  3. Sep 25, 2026Как прошла SmartData 2026? Я вот перечитываю свои впечатления от прошлого года и понимаю,…
  4. Sep 24, 2026Исследование data-people Тут ребята из DevCrowd запустили ежегодное исследование специалис…
  5. Sep 15, 2026Каким должен быть хороший DE? Меня однажды спросили на собесе: 🤩Какие 3 качества важны дл…
  6. Sep 12, 2026Mermaid-диаграммы Наконец-то дошли руки поковыряться в mermaid-диаграммах, это что за имба…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →