Python для сбора и анализа данных: различия между версиями
| Строка 117: | Строка 117: | ||
=== Интерактивные визуализации с библиотеками plotly и dash. (22 апреля) ===  | === Интерактивные визуализации с библиотеками plotly и dash. (22 апреля) ===  | ||
| + | * [https://www.dropbox.com/sh/ylu042uf2ddespd/AABiQipFldBrvWPj3wNpr00xa?dl=0 Видеозапись] занятия (было только в пятницу).  | ||
* [https://plotly.com/python/ Документация] библиотеки plotly.  | * [https://plotly.com/python/ Документация] библиотеки plotly.  | ||
* [https://dash.plot.ly/ Документация] библиотеки dash для интерактивных дэшбордов.  | * [https://dash.plot.ly/ Документация] библиотеки dash для интерактивных дэшбордов.  | ||
Версия 14:29, 23 апреля 2022
Это страница факультатива «Python для сбора и анализа данных», читаемого в МИЭФ в 2021/2022 учебном году.
Авторы курса: Щуров Илья Валерьевич, Тамбовцева Алла Андреевна.
Лекции и семинары ведет: Тамбовцева Алла Андреевна.
Содержание
- 1 Правила игры
 - 2 Программное обеспечение
 - 3 Материалы занятий
- 3.1 Презентация факультатива и знакомство с Jupyter Notebook (1 февраля)
 - 3.2 Переменные и типы данных в Python. Ввод и вывод (8 или 11 февраля)
 - 3.3 Списки и цикл for. Методы на строках. (15 или 18 февраля)
 - 3.4 Генераторы списков. Условные конструкции и цикл while. (22 или 25 февраля)
 - 3.5 Кортежи и словари. Работа с файлами. Формат JSON. (1 и 4 марта)
 - 3.6 Функции. Введение в парсинг HTML-файлов. (9 и 11 марта)
 - 3.7 Парсинг HTML-файлов. (15 и 18 марта)
 - 3.8 Управление браузером с помощью Selenium. Знакомство с API. (22 и 25 марта)
 - 3.9 Работа с API на примере ВКонтакте. Массивы NumPy и датафреймы pandas. (5 и 8 апреля)
 - 3.10 Датафреймы pandas. Визуализация с библиотекой seaborn. (12 и 15 апреля)
 - 3.11 Интерактивные визуализации с библиотеками plotly и dash. (22 апреля)
 
 - 4 Дополнительные материалы
 - 5 Домашние задания
 - 6 Проект
 
Правила игры
- Формула оценки: 0.4 * ДЗ + 0.2 * Онлайн + 0.4 * Проект.
 - Сдача домашних заданий с опозданием допускается, но со штрафом: за задержку в пределах часа – 15% от полученной оценки, в пределах суток – 30%, в пределах двух дней – 50%.
 - Курс читается с использованием онлайн-курсов на платформе DataCamp. Бесплатный доступ к платформе студентам предоставляется.
 - Ведомость по курсу: таблица.
 
Программное обеспечение
Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). Но в долгосрочной перспективе предпочтительнее установить Anaconda.
Материалы занятий
Презентация факультатива и знакомство с Jupyter Notebook (1 февраля)
- Презентация факультатива: слайды, видеозапись.
 - Знакомство со средой Jupyter Notebook. Инструкция по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown (смотреть, скачать).
 
Дополнительно:
- Markdown и Jupyter: больше про Markdown, интерактивные виджеты в Jupyter.
 - LaTeX: ShareLaTeX для желающих, документация на английском, материалы других курсов по LaTeX.
 
Переменные и типы данных в Python. Ввод и вывод (8 или 11 февраля)
- Видеозапись занятия: вторник, пятница. Just wait, планирую разбить каждое видео на 2 части – пара до перерыва и после.
 - Вычисления и переменные в Python (смотреть, скачать). Типы переменных, ввод и вывод в Python (смотреть, скачать).
 - Форматирование строк (смотреть, скачать).
 - Интерактивные виджеты в Jupyter Notebook: документация ipywidgets.
 - Практикум 1: (смотреть, скачать), решения задач (смотреть, скачать).
 
Дополнительно:
- Pythontutor: визуализатор кода, вычисления, ввод и вывод.
 - Проверка соответствия стандартам оформления кода: PEP8 online check.
 
Списки и цикл for. Методы на строках. (15 или 18 февраля)
- Видеозапись занятий: вторник, пятница. Файл для занятия.
 - Списки и цикл for: введение (смотреть, скачать), методы на списках (смотреть, скачать).
 - Методы .split() и .join() (смотреть, скачать).
 - Практикум 2: списки, цикл for, методы на строках (смотреть, скачать), решения задач (смотреть, скачать).
 
Дополнительно:
Генераторы списков. Условные конструкции и цикл while. (22 или 25 февраля)
- Видеозапись занятия: вторник, пятница.
 - Генераторы списков и enumerate() (смотреть, скачать).
 - Проверка условий (смотреть, скачать). Условные конструкции (смотреть, скачать). Цикл while (смотреть, скачать).
 - Практикум 3: условные конструкции и цикл while (смотреть, скачать), решения задач (смотреть, скачать).
 
Дополнительно:
Кортежи и словари. Работа с файлами. Формат JSON. (1 и 4 марта)
- Видеозапись: вторник, пятница. Сырые ipynb-файлы с занятия: вторник, пятница.
 - Кортежи (смотреть, скачать). Словари (смотреть, скачать). Множества (смотреть).
 - Работа с файлами и JSON-файлы (смотреть). Файл data.json.
 - Практикум 4: словари (смотреть, скачать), решения задач ([смотреть], [скачать]).
 
Функции. Введение в парсинг HTML-файлов. (9 и 11 марта)
- Видеозапись: среда, пятница.
 - Полная лекция по функциям (И.В.Щуров). Lambda-функции (смотреть, скачать).
 - Практикум 5: функции (смотреть, скачать).
 - Введение в HTML (слайды). Тьюториалы по веб-дизайну и веб-разработке от W3schools. Пример файла на платформе codepen.io.
 
Дополнительно:
- Pythontutor: функции и рекурсия.
 - Учебник от html5book.ru.
 
Парсинг HTML-файлов. (15 и 18 марта)
- Видеозапись занятия: вторник, пятница.
 - Парсинг BeautifulSoup: часть 1, часть 2.
 - Установка драйвера Selenium: для Chrome, для Firefox, решение проблем на Mac.
 
Управление браузером с помощью Selenium. Знакомство с API. (22 и 25 марта)
- Видеозапись занятия: вторник, пятница.
 - Selenium: пример с поиском по сайту (смотреть, скачать).
 - Selenium: пример с ВКонтакте (смотреть, скачать).
 - Доступ к API ВКонтакте: инструкция.
 
Работа с API на примере ВКонтакте. Массивы NumPy и датафреймы pandas. (5 и 8 апреля)
- Видеозаписи занятий: вторник, пятница.
 - Документация API ВКонтакте.
 - Выгрузка постов со стены сообщества (задачи, решения).
 - NumPy arrays, Pandas Series, Pandas DataFrames (читать, скачать).
 - Работа с датафреймами pandas: часть 1 (читать, скачать, файл firtree.csv).
 
Дополнительно:
Датафреймы pandas. Визуализация с библиотекой seaborn. (12 и 15 апреля)
- Данные для работы: firtree.csv, Chile.csv, wgi_fh.csv.
 - Работа с датафреймами pandas: часть 2 (читать, скачать), часть 3 (читать, скачать).
 - Визуализация с библиотекой seaborn (читать, скачать).
 
Интерактивные визуализации с библиотеками plotly и dash. (22 апреля)
- Видеозапись занятия (было только в пятницу).
 - Документация библиотеки plotly.
 - Документация библиотеки dash для интерактивных дэшбордов.
 - Обзор работы с dash: файл dash1.py.
 - Dashboard со своими данными: файл dash2.py, с меню для пользователя: файл dash3.py.
 
Дополнительные материалы
Библиотека SymPy для символьных вычислений
Введение в SymPy: часть 1 (sympy-1.ipynb), часть 2 (sympy-2.ipynb), задачи (sympy-problems.ipynb). Официальная документация SymPy.
Работа с текстом в Python
Библиотека pymorphy2 (морфологический анализатор). Библиотека pymystem3 (предобработка текста). Тьюториал для построения облака слов.
Статистика и анализ данных в Python
Материалы по статистическим тестам и линейным регрессиям в Python.
Домашние задания
- Домашние задания типа online выполняются на платформе DataCamp.
 - Обычные домашние задания сдаются в системе python.math-hse.info. Познакомиться с системой можно на примере домашнего задания №0.
 
| Домашнее задание | Ссылка | Дедлайн | 
|---|---|---|
| Online 1 | DataCamp: глава Python Lists | 17.02 23:59 | 
| Домашнее задание 1 | MathInfo: задания hw01 | 02.03. 23:59 | 
| Online 2 | DataCamp: глава Writing your own functions | 16.03 23:59 | 
| Online 3 | DataCamp: глава Default arguments, variable-length arguments and scope | 16.03 23:59 | 
| Домашнее задание 2 | MathInfo: задания hw02 | 05.04 10:00 | 
| Online 4 | DataCamp: глава NumPy | 07.04 23:59 | 
| Домашнее задание 3 | MathInfo: задания hw03 | 26.04 23:59 | 
| Online 5 | DataCamp: глава Aggregating DataFrames | 14.04 23:59 | 
| Online 6 | DataCamp: глава Slicing and Indexing DataFrames | 14.04 23:59 | 
| Online 7 | DataCamp: глава Introduction to Data Reshaping | 21.04 23:59 | 
| Online 8 | DataCamp: глава Converting Between Wide and Long Format | 21.04 23:59 | 
| Домашнее задание 4* | MathInfo: задания hw04 | TBA | 
| Online 9 | DataCamp: глава Stacking and Unstacking DataFrames | 28.04 23:59 | 
| Online 10 | DataCamp: глава Advanced Reshaping | 28.04 23:59 | 
Проект
- Описание проекта и критерии оценивания.
 - Проект можно выполнять как на русском, так и на английском языке. Для того, чтобы получить высокие баллы за проект (оценки 9-10), в проекте необходимо использовать продвинутые инструменты/библиотеки, не обсуждаемые подробно в рамках курса.
 - Проект необходимо загрузить на Dropbox до 16 мая 23:59, дедлайн жёсткий. Файл с кодом, файл с документацией и вспомогательные файлы (при наличии) лучше загружать в виде zip-архива.