Найти в Дзене
Изян

Открытый он-лайн курс Python для HR

Оглавление

Решил написать открытый он-лайн курс Python для HR. Открытый - значит бесплатный (но я, конечно, не откажусь от доната

  1. Номер карты Сбербанка 4274 2780 5167 5026
  2. Карта Тинкофф банк 5280 4137 5046 3700

если Вам курс будет полезен). Видеолекции буду выкладыать на YouTube канале HR-аналитики - рекомендую подписаться и следить за каналом. Рекомендую также свои курсы

Цели курса Python для HR

  1. познакомить с Python
  2. показать примеры решения задач аналитики / авоматизации операций HR через Python

Как будет реализован курс Python для HR:

  • Буду выкладывать видео, начиная с базового уровня, чтобы было понятно тем, кто делает первые шаги.
  • Видео будут выкладываться по мере написания роликов, поэтому это скорее серия видеолекций.
  • И третье: надеюсь, тематика будет рождаться в том числе на основе обратной связи. На первом этапе тематика понятна: загрузка данных, манипуляции с данными, визуализации. А что дальше? Матстатистика? Парсинг сайтов? Анализ текстов? Прикладные задачи типа расчета текучести / автоматизация расчета премий и все такое? В этом месте нужна будет ваша помощь.

В общем посмотрим, как пойдет.

  1. До курса надо устаовить дистрибутив Anaconda и Jupyter Notebook, см. Как установить Anaconda Python и Jupyter Notebook
  2. Или, если нет возможности установить, можно воспользоваться инструментом от Google, см. Google Colab для новичков (изучаем Python)

Содержание курса

1. Загрузка данных

  • знакомимся с ноутбуком (основные кнопки, ячейки кода / Markdown)
  • загружаем библиотеку pandas
  • загружаем данные из excel в ноутбук (pd.read_excel)
  • df.head()
  • параметры sheet_name, skiprows, nrows, header
  • загружаем данные из csv в ноутбук (pd.read_csv), параметры sep, encoding (последняя команда важна, когда возникает проблема с загрузкой файла в кириллице)
  • создаем DataFrame "руками"
  1. Как загрузить excel файл в google colab с локального компьютера - если вы не установили Anaconda и Jupyter Notebook, то рекомендую посмотреть данное видео, поскольку загрузка файлов с Вашего локального компа отличается от загрузки в Jupyter Notebook
  2. Как загрузить и объединить несколько файлов в Jupyter Notebook - загружаем и объединяем сразу несколько файлов excel, изучаем формулы pd.append(), pd.merge()
  • формула pd.append() - объединяем несколько датасетов в один
  • библиотека glob - скачиваем названия файлов
  • пишем первый цикл for in для автоматизации загрузки и слияния нескольких файлов
  • pd.to_excel() - выгрузка из ноутука в excel
  • pd.merge() - сливаем данные по типа ВПР в excel
  • загрузка данных из Google таблиц
  • загрузка данных из интернета pd.read_html()

фильтр, сортировка, описательные статистики, агрегация, пропущенные значе2. Pandas DataFrame: знакомство, манипуляции с данными

  • переименование ноутбука в Notebook
  • закомментировать выражение
  • df.info()
  • Типы данных pandas
  • df.shape
  • df.values
  • df.columns
  • df.index
  • df.sort_values() - сортировка
  • Фильтр по колонкам (отбор переменных)
  • Фильтр по строкам
  • isin() - фильтр сразу двух и более уровней категориальной переменной
  • df.index
  • df.set_index() создаем индекс
  • df.reset_index() сбрасываем индекс
  • df.loc() отбор строк / переменных на оcнове имен индекса
  • df.iloc() отбор строк / переменных на оcнове позиции индекса
  • отбор, когда индекс имеет формат даты
  • mean(), median(), min(), max(), std(), sum(), quantile()
  • agg()
  • pd.set_option() меняем научный формат данных 5.000e+03 на привычный нам формат 5 000
  • describe()
  • describe(include = 'object') - описательные статистики для категориальных переменных
  • value_counts()
  • isna()
  • isna().any()
  • isna().sum()
  • визуализация числа пропущенных значений по переменным
  • dropna()
  • inplace=True
  • fillna()
  • groupby()
  • pivot_table()
  • crosstab()

3. Визуализация matplotlib

  • dt.strftime("%Y-%m") извлекаем год и месяц из даты
  • value_counts() агрегируем данные
  • def fire(x) все действия по подсчету динамики автоматизируем в формуле
  • plt.plot() визуализация
  • кастомизация диаграммы: plt.axes(), plt.xticks(), plt.grid(), plt.xlabel(), plt.ylabel(), plt.title()
  • plt.annotate()
  • Цикл для значений диаграммы
  • figure, axes
  • facecolor
  • figsize=()
  • ax.tick_params, ax.grid(), ax.set_xlabel(), ax.set_ylabel(), ax.set_title()
  • ax.annotate
  1. Python Matplotlib subplots несколько диаграмм - на прошлой лекции мы построили диаграмму динамики уволенных по месяцам, в этой - посмотрим на динамику в разрезе причин увольнения - построим несколько диаграмм на одном листе
  • plt.subplots()
  • координаты позиций диаграмм
  • squeeze
  • sharey
  1. Matplotlib кастомизация plt subplots - мы разместили несколько диаграмм на одном листе, а теперь всю кастомизацию "зашиваем" в одну формулу.
  • plt.tight_layout() - настраивает размеры диаграмм так, чтобы подписи и заголовки умещались в размер
  • ax.xaxis.set_major_locator(plt.MultipleLocator()) - подписи оси X разреживаем - даем их не подряд по всем значениям, а пропускам часть, чтобы подписи не сливались, а были читаемы
  • ax.hist
  • help(ax.hist)
  • ax.hist(x, range = ...) - границы гистограммы
  • ax.hist(x, bins = ...) - управление примоугольниками
  • ax.xaxis.set_major_locator(plt.IndexLocator(base = 20, offset =0))
  • x.annotate() - подписи данных
  • groupby('var').size() - агрегируем данные по сфере деятельности респондентов
  • df.replace() меняем некорректное значение данных
  • ax.bar(x.index, y.values) - визуализирем распределение респондентов по сферам деятельности
  • df.groupby('var')['zp'].median().sort_values(ascending=False) - считаем меины зарплат по группам сфер деятельности респондентов
  • визуализируем медианы зарплат
  • добавляем стандартное отклонение к данным и визуализируем errorbar
  • ax.boxplot()
  • df.boxplot(column, , ax=ax)
  • распологаем ящики в порядке возрастания / убывания
  • plt.style.use()
  • fig.savefig()

4. "Чистка", cleaning данных

  • str.strip()
  • rstrip() lstrip()
  • .replace()
  • как одной командой провести все преобразования данных
  • как обработать сразу несколько переменных pandas
  • notnull()
  • pandas.to_datetime()
  • создаем переменную event
  • считаем стаж
  • np.where
  • pandas.cut
  • pandas.DataFrame.quantile
  • eNPS

Далее все новые видеолекции курса Python для HR будут выкладываться сюда.

Посты блога с тегом Python

См. также все посты блога с тегом Python, например,