Python для сбора и анализа данных: различия между версиями

Материал из MathINFO
Перейти к навигации Перейти к поиску
Строка 113: Строка 113:
 
* [https://github.com/allatambov/WebScrape23/blob/main/selenium.pdf Инструкция] по установке драйверов для Chrome, [https://chromedriver.chromium.org/downloads ссылка] на драйвера.
 
* [https://github.com/allatambov/WebScrape23/blob/main/selenium.pdf Инструкция] по установке драйверов для Chrome, [https://chromedriver.chromium.org/downloads ссылка] на драйвера.
 
* Краткое введение в регулярные выражения ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/re-short.ipynb читать], [скачать]), применение ''re'' для обработки JSON-строк в HTML ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/parsing-handling-incorrect-json.ipynb читать]).
 
* Краткое введение в регулярные выражения ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/re-short.ipynb читать], [скачать]), применение ''re'' для обработки JSON-строк в HTML ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/parsing-handling-incorrect-json.ipynb читать]).
* Практикум по управлению браузером с Selenium на примере Кинопоиска (читать, скачать).  
+
* Практикум по управлению браузером с Selenium на примере Кинопоиска ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/selenium-kino.ipynb читать], скачать).  
 
* Практикум по управлению браузером с Selenium: пример динамической страницы (читать, скачать).  
 
* Практикум по управлению браузером с Selenium: пример динамической страницы (читать, скачать).  
 
* Ссылки для работы: [https://sso.passport.yandex.ru/push?retpath=https%3A%2F%2Fwww.kinopoisk.ru%2F%2Fapi%2Fprofile-pending%2F%3Fretpath%3Dhttps%253A%252F%252Fwww.kinopoisk.ru%252F&uuid=f0e989dd-d612-4911-b8eb-f087d5a4a64a kinopoisk], [https://oec.world/en/profile/country/nor?depthSelector1=HS4Depth&yearSelector1=2000 oec].
 
* Ссылки для работы: [https://sso.passport.yandex.ru/push?retpath=https%3A%2F%2Fwww.kinopoisk.ru%2F%2Fapi%2Fprofile-pending%2F%3Fretpath%3Dhttps%253A%252F%252Fwww.kinopoisk.ru%252F&uuid=f0e989dd-d612-4911-b8eb-f087d5a4a64a kinopoisk], [https://oec.world/en/profile/country/nor?depthSelector1=HS4Depth&yearSelector1=2000 oec].

Версия 16:24, 5 мая 2023

Это страница факультатива «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 апреля)

  • Видеозапись занятия.
  • Базовые операции с датафреймами pandas ([читать], ipynb), файл Salaries.csv, загрузить данные можно также по ссылке.
  • Немного о визуализации с библиотекой seaborn (читать, ipynb).
  • Страница проекта Streamlit, перечень основных функций.
  • Инструкция по работе со streamlit (читать, ipynb), исполняемый файл myapp.py (читать, скачать).
  • Инструкция по публикации приложения (сначала создать аккаунт и репозиторий на Github).

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

  • Домашние задания сдаются через систему 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), в проекте необходимо использовать продвинутые инструменты/библиотеки, не обсуждаемые подробно в рамках курса.