Python для сбора и анализа данных

Материал из MathINFO
Перейти к навигации Перейти к поиску

Это страница факультатива «Python для сбора и анализа данных», читаемого в МИЭФ в 2022/2023 учебном году.

Авторы курса: Щуров Илья Валерьевич, Тамбовцева Алла Андреевна.

Лекции и семинары ведет: Тамбовцева Алла Андреевна.

Правила игры

  • Формула оценки: 0.4 * ДЗ + 0.2 * Тест + 0.4 * Проект.
  • Сдача домашних заданий с опозданием допускается, но со штрафом: за задержку в пределах часа – 15% от полученной оценки, в пределах суток – 30%, в пределах двух дней – 50%.

Программное обеспечение

Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). Но в долгосрочной перспективе предпочтительнее установить Anaconda.

Материалы занятий

Занятие 00. Презентация факультатива и знакомство с Jupyter Notebook (1 февраля)

Дополнительно:

Занятие 01. Вычисления и переменные. Типы данных. Ввод и вывод. (14 и 16 февраля)

Дополнительно:

  • Вычисления с заданной точностью с модулем decimal, официальная документация decimal.
  • Вычисления с обыкновенными дробями с модулем fractions, официальная документация fractions.
  • Символьные вычисления с sympy: часть 1 (sympy-1.ipynb), часть 2 (sympy-2.ipynb), официальная документация sympy.
  • Стандарты оформления кода Python: PEP8, проверка соответствия кода стандартам: PEP8 online check.

Занятие 02. Списки и цикл for. Методы .split() и .join() (21 и 27 февраля)

Дополнительно:

Занятие 03. Методы на строках. Чтение и запись txt-файлов. (28 февраля и 2 марта)

Дополнительно:

  • Документация библиотеки pymorphy2 (морфологический анализатор).
  • Тьюториал по построению облака слов с библиотекой wordcloud.
  • Библиотека dostoevsky для анализа тональности текстов.

Занятие 04. Условные конструкции и цикл while. (7 и 9 марта)

Занятие 05. Множества и словари. Знакомство с API (14 и 16 марта)

Занятие 06. Функции. Массивы и датафреймы pandas (21 и 23 марта)

Дополнительно:

Занятие 07. Введение в HTML. Парсинг с BeautifulSoup (3 и 5 апреля)

Дополнительно:

Занятие 08. Примеры парсинга с BeautifulSoup и Pandas (11 и 13 апреля)

Занятие 09. Примеры парсинга с Selenium (20 апреля)

  • Видеозапись занятия, сырой ipynb с занятия.
  • Инструкция по установке драйверов для Chrome, ссылка на драйвера.
  • Краткое введение в регулярные выражения (читать, скачать), применение re для обработки JSON-строк в HTML (читать).
  • Практикум по управлению браузером с Selenium на примере Кинопоиска (читать, скачать).
  • Практикум по управлению браузером с Selenium: пример динамической страницы (читать, скачать).
  • Ссылки для работы: kinopoisk, oec.

Дополнительно:

  • Неофициальная документация библиотеки Selenium.
  • Практикум по управлению браузером с Selenium на примере ВКонтакте (читать, ipynb).
  • Практикум по управлению браузером с Selenium: XPATH и скачивание файлов (читать, скачать).
  • Практикум по управлению браузером с Selenium на примере Twitter: TBA

Занятие 10. Библиотека pandas, приложения Streamlit (27 апреля)

Домашние задания

  • Домашние задания сдаются через систему python.math-info, видео-инструкция по работе с системой.
  • Домашнее задание №8 бонусное, необязательное, его можно сдать, если хочется повысить оценку за домашние задания. Если вы не сдаете ДЗ№8, оценка считается как среднее по семи обязательным заданиям. Если сдаете ДЗ№8, оценку за него можно перенести на любое несданное задание или задание с самой низкой оценкой.
Домашнее задание Дедлайн
Домашнее задание 1 27.02 23:59
Домашнее задание 2 09.03 23:59
Домашнее задание 3 16.03 23:59
Домашнее задание 4, pesem.txt 05.04 23:59
Домашнее задание 5 12.04 23:59
Домашнее задание 6, файл ipynb 20.04 23:59
Домашнее задание 7, файл polit.csv 04.05 23:59
Домашнее задание 8*, файл ipynb 15.05 23:59

Проект

  • Описание проекта и критерии оценивания (файл).
  • Дедлайн: 19 мая 23:59.
  • Проект может быть выполнен как на русском, так и на английском языке, индивидуально или в группах не более 3 человек.
  • Чтобы получить высокие баллы за проект (оценки 9-10), в проекте необходимо использовать продвинутые инструменты/библиотеки, не обсуждаемые подробно в рамках курса.