habrahabr

Считаем средную ЗП дата-саентолога. Парсим hh.ru с помощу pandas/python

  • суббота, 24 августа 2019 г. в 00:19:42
https://habr.com/ru/post/464823/
  • Python
  • Data Mining


Заходишь на хедхантер, хочешь узнать, что происходит на рынке, доказать бабушке, что у тебя нет работы из-за рынка, а не что ты л̶е̶н̶т̶я̶й̶ (ты просто проводишь альтернативный образ жизни) или хочешь найти стажировку на целых 8 тыс. (до вычета НДФЛ). Приходится каждый раз настраивать кнопки (вилка зарплаты, должность, город и т. д и т. п). И так каждый раз, каждый день…



Тогда вдруг приходит в «башку»: “Так дальше быть не может!”. Я же знаю Python (купил же курс за 1.99$ на Udemy), наверняка уже кто-то написал api. Забыл рассказать, что у меня есть черный пояс с google-fu?



Ну что, ребята? Поехали!


Парсим на Python


HeadHunter (hh.ru) позволяет найти работу в России и самая это качественная база вакансий. И еще написали api. О боже, какая страница! Немного погуглил и вот получилось написать парсер.


https://gist.github.com/fuwiak/9c695b51c33b2e052c5a721383705a9c


#код с ссылки запускаем так (BASH)
python3 hh_parser.py


В итоге мы получили файл csv с названием указанным в job_title(line 9).
В указанном коде, будет загружен один файл с вакансиями с фразой
«Data Analyst» и «data scientist», если хотите отдельно поменяйте строку на


job_title=['Data Analyst', 'Data Scientist']

Тогда вы получаете 2 файла с етими названиями.
Что интересно, есть другие оператора чем «and». Можно об этом почитать:


https://hh.ru/article/309400
Какой кайф, правда?


What time is it? Its Pandas Time!


Собранные таким образом объявления были разделены на группы в соответствии с информацией, содержащейся в содержании объявлений, или описанием их метаданных типа город, позиция, вилки зарплаты, категория вакансии — здесь одно объявление может принадлежать нескольким категориям.


Сейчас займусь данным, которые связанные с data scientist. Я пользуюсь jupyter-notebook, если вы еще его не знаете лучше нажмите ctrl+w(cmd+w мaжорский вариант), там все четко объяснено.



Госпаде, что делать? Колонка с названием “Unnamed”. Не бойся детка, все получится.



Здесь очень прикольно, но уже достало ждать ответа на вопрос “сколько же бабла у «саентолога»?” https://gist.github.com/fuwiak/2b1f598dc4b577e91c3294579025bb5f



Наконец-то узнали, около 150 тыс рублей, как ожидаемо.


Для средней зарплаты у меня были такие условия:


  • не считал вакансии, в которых нет указанной зарплаты (df.salary.dropna)
  • взял только зарплаты в рублях
  • если была вилка, тогда взял среднее значение (например, вилка от 10000 rub до 20000 rub → 15000 rub).

А что если не получаешь таких денег? Осталось спросить начальника:



Бонус


Кому нужны джуны? (красный цвет добавил в GIMP, уже рассказывал кем считает меня бабушка?).