Сведение данных это боль
Захотел посмотреть распределение пользователей по численности населения городов. Mixpanel выдаёт регион и населенный пункт на английском, причём регионы в некоторых случаях не транслитерирует, а переводит по какой то адской логике, например вместо Moskva - Moscow, но Astrakhanskaya Oblast, а с территориями и краями аналогичные приключения.
Данные по численности населения есть из wiki https://github.com/pensnarik/russian-cities, но там перевод не совпадает и населенных пунктов мало. Нашёл данные из росстата https://data-in.ru/data-catalog/datasets/160/ но там помимо региона и названия есть район. Нужно было это как то это сматчить.
На прошлой работе мы делали систему по обработке данных и там была такая фича как нечёткий поиск (fuzzy search). Я запомнил потому что очень нетривиальная вещь и разрабы долго на доске что то там рисовали, центроиды и все такое. Для питона конечно все есть https://github.com/seatgeek/fuzzywuzzy.
В итоге придумал английские названия транслитерировать на русский, а потом искать среди русских названий нечетким поиском и брать первый вариант. Предварительно для районов, вручную сделал матчинг благо их немного. И все получилось, правда косяк с районами вылез на Питере, Москве и Уфе там численность населения была указана по районам и в итоге получались некорректные значения. Для них пришлось численность указать вручную, хотя наверное можно было как то просуммировать.
Отдельной ненависти заслуживает pandas, пока существует этот дьявол, я понимаю что электронные таблицы будут жить вечно. Как раньше писали английский со словарем, вот у меня так же pandas со stackoverflow, причем два года уже ковыряюсь, но запомнить не получается, каждый раз как первый. #python
Захотел посмотреть распределение пользователей по численности населения городов. Mixpanel выдаёт регион и населенный пункт на английском, причём регионы в некоторых случаях не транслитерирует, а переводит по какой то адской логике, например вместо Moskva - Moscow, но Astrakhanskaya Oblast, а с территориями и краями аналогичные приключения.
Данные по численности населения есть из wiki https://github.com/pensnarik/russian-cities, но там перевод не совпадает и населенных пунктов мало. Нашёл данные из росстата https://data-in.ru/data-catalog/datasets/160/ но там помимо региона и названия есть район. Нужно было это как то это сматчить.
На прошлой работе мы делали систему по обработке данных и там была такая фича как нечёткий поиск (fuzzy search). Я запомнил потому что очень нетривиальная вещь и разрабы долго на доске что то там рисовали, центроиды и все такое. Для питона конечно все есть https://github.com/seatgeek/fuzzywuzzy.
В итоге придумал английские названия транслитерировать на русский, а потом искать среди русских названий нечетким поиском и брать первый вариант. Предварительно для районов, вручную сделал матчинг благо их немного. И все получилось, правда косяк с районами вылез на Питере, Москве и Уфе там численность населения была указана по районам и в итоге получались некорректные значения. Для них пришлось численность указать вручную, хотя наверное можно было как то просуммировать.
Отдельной ненависти заслуживает pandas, пока существует этот дьявол, я понимаю что электронные таблицы будут жить вечно. Как раньше писали английский со словарем, вот у меня так же pandas со stackoverflow, причем два года уже ковыряюсь, но запомнить не получается, каждый раз как первый. #python
💘1