Python для сбора и анализа данных: различия между версиями
(не показано 14 промежуточных версий этого же участника) | |||
Строка 18: | Строка 18: | ||
== Материалы занятий == | == Материалы занятий == | ||
− | === | + | === Знакомство с Jupyter Notebook (1 февраля) === |
− | |||
* Знакомство со средой Jupyter Notebook. [https://allatambov.github.io/icef/seminars/instruction-JN.pdf Инструкция] по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-jupyter.ipynb смотреть], [http://allatambov.github.io/icef/seminars/intro-jupyter.ipynb скачать]). | * Знакомство со средой Jupyter Notebook. [https://allatambov.github.io/icef/seminars/instruction-JN.pdf Инструкция] по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-jupyter.ipynb смотреть], [http://allatambov.github.io/icef/seminars/intro-jupyter.ipynb скачать]). | ||
Строка 30: | Строка 29: | ||
=== Переменные и типы данных в Python. Ввод и вывод (8 или 11 февраля) === | === Переменные и типы данных в Python. Ввод и вывод (8 или 11 февраля) === | ||
− | |||
* Вычисления и переменные в Python ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-variables.ipynb смотреть], [http://allatambov.github.io/icef/seminars/intro-variables.ipynb скачать]). Типы переменных, ввод и вывод в Python ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-types.ipynb смотреть], [http://allatambov.github.io/icef/seminars/intro-types.ipynb скачать]). | * Вычисления и переменные в Python ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-variables.ipynb смотреть], [http://allatambov.github.io/icef/seminars/intro-variables.ipynb скачать]). Типы переменных, ввод и вывод в Python ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-types.ipynb смотреть], [http://allatambov.github.io/icef/seminars/intro-types.ipynb скачать]). | ||
* Форматирование строк ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/str-formating.ipynb смотреть], [https://allatambov.github.io/pydj/seminars/str-formating.ipynb скачать]). | * Форматирование строк ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/str-formating.ipynb смотреть], [https://allatambov.github.io/pydj/seminars/str-formating.ipynb скачать]). | ||
Строка 43: | Строка 41: | ||
=== Списки и цикл for. Методы на строках. (15 или 18 февраля) === | === Списки и цикл for. Методы на строках. (15 или 18 февраля) === | ||
− | |||
* Списки и цикл for: введение ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-1.ipynb смотреть], [https://allatambov.github.io/icef/seminars/lists-1.ipynb скачать]), методы на списках ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-2.ipynb смотреть], [https://allatambov.github.io/icef/seminars/lists-2.ipynb скачать]). | * Списки и цикл for: введение ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-1.ipynb смотреть], [https://allatambov.github.io/icef/seminars/lists-1.ipynb скачать]), методы на списках ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-2.ipynb смотреть], [https://allatambov.github.io/icef/seminars/lists-2.ipynb скачать]). | ||
* Методы .split() и .join() ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/split-join.ipynb смотреть], [https://allatambov.github.io/icef/seminars/split-join.ipynb скачать]). | * Методы .split() и .join() ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/split-join.ipynb смотреть], [https://allatambov.github.io/icef/seminars/split-join.ipynb скачать]). | ||
Строка 55: | Строка 52: | ||
=== Генераторы списков. Условные конструкции и цикл while. (22 или 25 февраля) === | === Генераторы списков. Условные конструкции и цикл while. (22 или 25 февраля) === | ||
− | |||
* Генераторы списков и enumerate() ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/more-lists.ipynb смотреть], [https://allatambov.github.io/icef/seminars/more-lists.ipynb скачать]). | * Генераторы списков и enumerate() ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/more-lists.ipynb смотреть], [https://allatambov.github.io/icef/seminars/more-lists.ipynb скачать]). | ||
* Проверка условий ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/conditions.ipynb смотреть], [https://allatambov.github.io/icef/seminars/conditions.ipynb скачать]). Условные конструкции ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/if-else.ipynb смотреть], [https://allatambov.github.io/icef/seminars/if-else.ipynb скачать]). Цикл while ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/while.ipynb смотреть], [https://allatambov.github.io/icef/seminars/while.ipynb скачать]). | * Проверка условий ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/conditions.ipynb смотреть], [https://allatambov.github.io/icef/seminars/conditions.ipynb скачать]). Условные конструкции ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/if-else.ipynb смотреть], [https://allatambov.github.io/icef/seminars/if-else.ipynb скачать]). Цикл while ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/while.ipynb смотреть], [https://allatambov.github.io/icef/seminars/while.ipynb скачать]). | ||
Строка 67: | Строка 63: | ||
=== Кортежи и словари. Работа с файлами. Формат JSON. (1 и 4 марта) === | === Кортежи и словари. Работа с файлами. Формат JSON. (1 и 4 марта) === | ||
− | |||
* Кортежи ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/tuples.ipynb смотреть], [https://allatambov.github.io/icef/seminars/tuples.ipynb скачать]). Словари ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/dicts.ipynb смотреть], [https://allatambov.github.io/icef/seminars/dicts.ipynb скачать]). Множества ([https://nbviewer.jupyter.org/github/PyBasics-19/py-basics-19/blob/master/lectures/sets.ipynb смотреть]). | * Кортежи ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/tuples.ipynb смотреть], [https://allatambov.github.io/icef/seminars/tuples.ipynb скачать]). Словари ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/dicts.ipynb смотреть], [https://allatambov.github.io/icef/seminars/dicts.ipynb скачать]). Множества ([https://nbviewer.jupyter.org/github/PyBasics-19/py-basics-19/blob/master/lectures/sets.ipynb смотреть]). | ||
* Работа с файлами и JSON-файлы ([https://nbviewer.org/github/allatambov/PyDat-0919/blob/master/lectures-seminars/5-files/os-json.ipynb смотреть]). Файл [https://www.dropbox.com/s/f6qqy2popixxj2g/data.json?dl=0 data.json]. | * Работа с файлами и JSON-файлы ([https://nbviewer.org/github/allatambov/PyDat-0919/blob/master/lectures-seminars/5-files/os-json.ipynb смотреть]). Файл [https://www.dropbox.com/s/f6qqy2popixxj2g/data.json?dl=0 data.json]. | ||
Строка 74: | Строка 69: | ||
=== Функции. Введение в парсинг HTML-файлов. (9 и 11 марта) === | === Функции. Введение в парсинг HTML-файлов. (9 и 11 марта) === | ||
− | |||
* Полная [https://nbviewer.jupyter.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb лекция] по функциям (И.В.Щуров). Lambda-функции ([https://nbviewer.jupyter.org/github/allatambov/PyDat-0919/blob/master/lectures-seminars/5-files/lambda-functions.ipynb смотреть], [https://allatambov.github.io/icef/seminars/lambda-functions.ipynb скачать]). | * Полная [https://nbviewer.jupyter.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb лекция] по функциям (И.В.Щуров). Lambda-функции ([https://nbviewer.jupyter.org/github/allatambov/PyDat-0919/blob/master/lectures-seminars/5-files/lambda-functions.ipynb смотреть], [https://allatambov.github.io/icef/seminars/lambda-functions.ipynb скачать]). | ||
* Практикум 5: функции ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/icef-seminar05.ipynb смотреть], [https://allatambov.github.io/icef/icef-seminar05.ipynb скачать]). | * Практикум 5: функции ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/icef-seminar05.ipynb смотреть], [https://allatambov.github.io/icef/icef-seminar05.ipynb скачать]). | ||
Строка 86: | Строка 80: | ||
=== Парсинг HTML-файлов. (15 и 18 марта) === | === Парсинг HTML-файлов. (15 и 18 марта) === | ||
− | |||
* Парсинг BeautifulSoup: [https://gist.github.com/allatambov/0b3b72f30da68602cff928511878772f часть 1], [https://gist.github.com/allatambov/a9853d3deff299fac9d706c960a5e8f7 часть 2]. | * Парсинг BeautifulSoup: [https://gist.github.com/allatambov/0b3b72f30da68602cff928511878772f часть 1], [https://gist.github.com/allatambov/a9853d3deff299fac9d706c960a5e8f7 часть 2]. | ||
* Установка драйвера Selenium: для [https://chromedriver.chromium.org/downloads Chrome], для [https://github.com/mozilla/geckodriver/releases/ Firefox], [https://allatambov.github.io/icef/instr-wb.pdf решение] проблем на Mac. | * Установка драйвера Selenium: для [https://chromedriver.chromium.org/downloads Chrome], для [https://github.com/mozilla/geckodriver/releases/ Firefox], [https://allatambov.github.io/icef/instr-wb.pdf решение] проблем на Mac. | ||
Строка 92: | Строка 85: | ||
=== Управление браузером с помощью Selenium. Знакомство с API. (22 и 25 марта) === | === Управление браузером с помощью Selenium. Знакомство с API. (22 и 25 марта) === | ||
− | |||
* Selenium: пример с поиском по сайту ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/selenium-bg.ipynb смотреть], [https://allatambov.github.io/icef/selenium-bg.ipynb скачать]). | * Selenium: пример с поиском по сайту ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/selenium-bg.ipynb смотреть], [https://allatambov.github.io/icef/selenium-bg.ipynb скачать]). | ||
* Selenium: пример с ВКонтакте ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/selenium-vk.ipynb смотреть], [https://allatambov.github.io/icef/selenium-vk.ipynb скачать]). | * Selenium: пример с ВКонтакте ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/selenium-vk.ipynb смотреть], [https://allatambov.github.io/icef/selenium-vk.ipynb скачать]). | ||
Строка 99: | Строка 91: | ||
=== Работа с API на примере ВКонтакте. Массивы NumPy и датафреймы pandas. (5 и 8 апреля) === | === Работа с API на примере ВКонтакте. Массивы NumPy и датафреймы pandas. (5 и 8 апреля) === | ||
− | |||
* [https://dev.vk.com/method Документация] API ВКонтакте. | * [https://dev.vk.com/method Документация] API ВКонтакте. | ||
* Выгрузка постов со стены сообщества ([https://allatambov.github.io/icef/vk-api-wall.ipynb задачи], [https://allatambov.github.io/icef/vk-api-wall-upd.ipynb решения]). | * Выгрузка постов со стены сообщества ([https://allatambov.github.io/icef/vk-api-wall.ipynb задачи], [https://allatambov.github.io/icef/vk-api-wall-upd.ipynb решения]). | ||
Строка 114: | Строка 105: | ||
* Работа с датафреймами pandas: часть 2 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-02.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-02.ipynb скачать]), часть 3 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-03.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-03.ipynb скачать]). | * Работа с датафреймами pandas: часть 2 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-02.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-02.ipynb скачать]), часть 3 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-03.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-03.ipynb скачать]). | ||
* Визуализация с библиотекой seaborn ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/seaborn-graphs.ipynb читать], [http://allatambov.github.io/icef/seminars/seaborn-graphs.ipynb скачать]). | * Визуализация с библиотекой seaborn ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/seaborn-graphs.ipynb читать], [http://allatambov.github.io/icef/seminars/seaborn-graphs.ipynb скачать]). | ||
+ | |||
+ | === Интерактивные визуализации с библиотеками plotly и dash. (22 апреля) === | ||
+ | |||
+ | * [https://plotly.com/python/ Документация] библиотеки plotly. | ||
+ | * [https://dash.plot.ly/ Документация] библиотеки dash для интерактивных дэшбордов. | ||
+ | * Обзор работы с dash: файл [https://gist.github.com/allatambov/9057d18b80c7f0698bd73d02d3e32d09 dash1.py]. | ||
+ | * Dashboard со своими данными: файл [https://gist.github.com/allatambov/043ddefcc76566f4c739fa5c7b2502fc dash2.py], с меню для пользователя: файл [https://gist.github.com/allatambov/cdecca50d511024ae10e685081303cea dash3.py]. | ||
+ | |||
+ | === Дополнительные темы. Классы. Регулярные выражения. (26 апреля) === | ||
+ | |||
+ | * Объекты и классы в Python ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/classes.ipynb конспект], [https://www.w3schools.com/python/python_classes.asp материалы] от W3schools). | ||
+ | * Введение в регулярные выражения ([https://github.com/allatambov/Py-programming-3/blob/3e471c720a4f5f7e08b5f4878299b939799cded2/28-05/regex-1.ipynb конспект]). | ||
== Дополнительные материалы == | == Дополнительные материалы == | ||
Строка 133: | Строка 136: | ||
* Домашние задания типа ''online'' выполняются на платформе DataCamp. | * Домашние задания типа ''online'' выполняются на платформе DataCamp. | ||
* Обычные домашние задания сдаются в системе [http://python.math-hse.info python.math-hse.info]. Познакомиться с системой можно на примере домашнего задания №0. | * Обычные домашние задания сдаются в системе [http://python.math-hse.info python.math-hse.info]. Познакомиться с системой можно на примере домашнего задания №0. | ||
+ | * Домашнее задание 4 – дополнительное. Оценка за ДЗ рассчитывается по домашним заданиям 1-3. Но если какое-то из них не сдано, можно сдать домашнее задание 4 и тем самым скомпенсировать полученный 0. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 150: | Строка 154: | ||
| Online 4 || DataCamp: глава [https://app.datacamp.com/learn/courses/intro-to-python-for-data-science NumPy] || 07.04 23:59 | | Online 4 || DataCamp: глава [https://app.datacamp.com/learn/courses/intro-to-python-for-data-science NumPy] || 07.04 23:59 | ||
|- | |- | ||
− | | Домашнее задание 3 || MathInfo: задания hw03 || | + | | Домашнее задание 3 || MathInfo: задания [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef2022/icef_hw03/icef_hw03.ipynb hw03] || 26.04 23:59 |
|- | |- | ||
| Online 5 || DataCamp: глава [https://app.datacamp.com/learn/courses/data-manipulation-with-pandas Aggregating DataFrames] || 14.04 23:59 | | Online 5 || DataCamp: глава [https://app.datacamp.com/learn/courses/data-manipulation-with-pandas Aggregating DataFrames] || 14.04 23:59 | ||
Строка 160: | Строка 164: | ||
| Online 8 || DataCamp: глава [https://app.datacamp.com/learn/courses/reshaping-data-with-pandas Converting Between Wide and Long Format] || 21.04 23:59 | | Online 8 || DataCamp: глава [https://app.datacamp.com/learn/courses/reshaping-data-with-pandas Converting Between Wide and Long Format] || 21.04 23:59 | ||
|- | |- | ||
− | | Домашнее задание 4 || | + | | Домашнее задание 4* || задания [https://github.com/allatambov/allatambov.github.io/blob/master/icef/hw/hw03.ipynb hw04], файл [https://allatambov.github.io/pydj/seminars/polit.csv polit.csv], сдавать через [https://www.dropbox.com/request/AbCirZTrcqQKpX9Pg4uN Dropbox] || 12.05 23:59 |
|- | |- | ||
| Online 9 || DataCamp: глава [https://app.datacamp.com/learn/courses/reshaping-data-with-pandas Stacking and Unstacking DataFrames] || 28.04 23:59 | | Online 9 || DataCamp: глава [https://app.datacamp.com/learn/courses/reshaping-data-with-pandas Stacking and Unstacking DataFrames] || 28.04 23:59 | ||
Строка 166: | Строка 170: | ||
| Online 10 || DataCamp: глава [https://app.datacamp.com/learn/courses/reshaping-data-with-pandas Advanced Reshaping] || 28.04 23:59 | | Online 10 || DataCamp: глава [https://app.datacamp.com/learn/courses/reshaping-data-with-pandas Advanced Reshaping] || 28.04 23:59 | ||
|} | |} | ||
+ | |||
+ | == Проект == | ||
+ | |||
+ | * [https://allatambov.github.io/icef/icef-project.pdf Описание] проекта и критерии оценивания. | ||
+ | * Проект можно выполнять как на русском, так и на английском языке. Для того, чтобы получить высокие баллы за проект (оценки 9-10), в проекте необходимо использовать продвинутые инструменты/библиотеки, не обсуждаемые подробно в рамках курса. | ||
+ | * Проект необходимо загрузить на [https://www.dropbox.com/request/UIrB1HUgUiBhACAmNCUG Dropbox] до 19 мая 18:00, дедлайн жёсткий. Файл с кодом, файл с документацией и вспомогательные файлы (при наличии) лучше загружать в виде zip-архива. |
Текущая версия на 03:25, 4 мая 2024
Это страница факультатива «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 апреля)
- 3.12 Дополнительные темы. Классы. Регулярные выражения. (26 апреля)
- 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 февраля)
- Вычисления и переменные в 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 марта)
- Кортежи (смотреть, скачать). Словари (смотреть, скачать). Множества (смотреть).
- Работа с файлами и 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.
Дополнительные темы. Классы. Регулярные выражения. (26 апреля)
- Объекты и классы в Python (конспект, материалы от W3schools).
- Введение в регулярные выражения (конспект).
Дополнительные материалы
Библиотека 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.
- Домашнее задание 4 – дополнительное. Оценка за ДЗ рассчитывается по домашним заданиям 1-3. Но если какое-то из них не сдано, можно сдать домашнее задание 4 и тем самым скомпенсировать полученный 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* | задания hw04, файл polit.csv, сдавать через Dropbox | 12.05 23:59 |
Online 9 | DataCamp: глава Stacking and Unstacking DataFrames | 28.04 23:59 |
Online 10 | DataCamp: глава Advanced Reshaping | 28.04 23:59 |
Проект
- Описание проекта и критерии оценивания.
- Проект можно выполнять как на русском, так и на английском языке. Для того, чтобы получить высокие баллы за проект (оценки 9-10), в проекте необходимо использовать продвинутые инструменты/библиотеки, не обсуждаемые подробно в рамках курса.
- Проект необходимо загрузить на Dropbox до 19 мая 18:00, дедлайн жёсткий. Файл с кодом, файл с документацией и вспомогательные файлы (при наличии) лучше загружать в виде zip-архива.