Переписать код используя asyncio/polars

Цена договорная
08 июня 2023, 22:16 • 7 откликов • 54 просмотра
Есть 2 файла
1 - russia.geo.json - geojson датафрейм, в котором указаны полигоны/мультиполигоны регионов России, скачанных из openstreetmap
2 - addresses_adverts.csv - файл с координатами и id, количество строк - около 25 млн
Итого, нужно получить обновленный addresses_adverts.csv файл, в котором появится новая колонка "region_id", который является номером региона (на основе первого файла)

Суть проблемы заключается в следующем:
- слишком долго обрабатывается цикл
- ad['region_id'] = list(executor.map(lambda x, y: get_region(x, y), ad['geo_lon'], ad['geo_lat'])) - Если сделать подобным образом, то также медленно

Файлы
https://disk.yandex.ru/d/jDvnPeVZg2owTQ
https://disk.yandex.ru/d/pqQ4ihqnXP6kvw

Текущий не асинхронный код, для теста можно поменять строку так
ad = pd.read_csv('addresses_adverts.csv', sep="\t", nrows=1000)

https://pastebin.com/Uwz4D1UX

пишите сразу цену в лс
Отзывы
Всё прошло замечательно, рекомендую! Быстро и качественно выполнил задачу
11 месяцев назад
R50 935103c3fe24e94493bea181cb1a3889
Фрилансер
Отличный заказчик, четко описал задачу, был на связи, быстро принял результат и оплатил все как договаривались. Рекомендую
11 месяцев назад