Python для сбора и анализа данных: различия между версиями
(не показаны 23 промежуточные версии этого же участника) | |||
Строка 16: | Строка 16: | ||
== Программное обеспечение == | == Программное обеспечение == | ||
− | Перед занятиями необходимо установить дистрибутив '''Anaconda''' (скачать можно [https://www.anaconda.com/download здесь]), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы '''Jupyter Notebook'''. Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс [https://colab.research.google.com/ Google Colab] (для создания и редактирования файлов нужен аккаунт Gmail). Подробности по установке и работе – см. ниже в неделе 0. | + | Перед занятиями необходимо установить дистрибутив '''Anaconda''' (скачать можно [https://www.anaconda.com/download здесь]), который включает в себя интерпретатор языка Python, библиотеки <br>для обработки, анализа и визуализации данных, а также среду для работы '''Jupyter Notebook'''. Также есть возможность работать в Jupyter Notebook онлайн<br>, используя ресурс [https://colab.research.google.com/ Google Colab] (для создания и редактирования файлов нужен аккаунт Gmail). Подробности по установке и работе – см. ниже в неделе 0. |
== Материалы и лабораторные работы == | == Материалы и лабораторные работы == | ||
Строка 154: | Строка 154: | ||
* [https://www.dropbox.com/scl/fo/3chqh7iqo89byprh78flq/h?rlkey=fwp96j1c8pfydcolk0d6bq23l&dl=0 Видеозаписи] занятия и «сырой» ipynb-файл с занятия. | * [https://www.dropbox.com/scl/fo/3chqh7iqo89byprh78flq/h?rlkey=fwp96j1c8pfydcolk0d6bq23l&dl=0 Видеозаписи] занятия и «сырой» ipynb-файл с занятия. | ||
* Массивы NumPy, последовательности и датафреймы Pandas ([https://github.com/allatambov/ICEF24/blob/main/arrays-pandas.ipynb читать], [https://www.dropbox.com/scl/fi/xpldj5ih2jc9lvgbynih4/arrays-pandas.ipynb?rlkey=axhr6cuh844mv8d83e4ev4sc6&dl=0 ipynb]). | * Массивы NumPy, последовательности и датафреймы Pandas ([https://github.com/allatambov/ICEF24/blob/main/arrays-pandas.ipynb читать], [https://www.dropbox.com/scl/fi/xpldj5ih2jc9lvgbynih4/arrays-pandas.ipynb?rlkey=axhr6cuh844mv8d83e4ev4sc6&dl=0 ipynb]). | ||
− | * Операции с датафреймами pandas: часть 1 (читать, ipynb) | + | * Операции с датафреймами pandas: часть 1 ([https://github.com/allatambov/ICEF24/blob/main/pandas-intro-part01.ipynb читать], [https://www.dropbox.com/scl/fi/gnm4o88vptczjktkmwmre/pandas-intro-part01.ipynb?rlkey=zddnap2gh24h0isv3amuzcc4b&dl=0 ipynb]), файл [https://www.dropbox.com/scl/fi/hq6wwid36ns2p6fiegws5/Salaries.csv?rlkey=yka8pmz16id8ti71maaor576f&dl=0 Salaries.csv]. |
− | |||
− | === Неделя 5. Датафреймы Pandas. Парсинг HTML === | + | Дополнительно: |
+ | |||
+ | * Официальная документация [https://numpy.org/doc/stable/ NumPy] и [https://pandas.pydata.org/docs/ Pandas], [https://matplotlib.org/stable/users/index Matplotlib]. | ||
+ | * [https://matplotlib.org/stable/gallery/color/named_colors.html Цвета] в Python, веселый [https://colorscheme.ru/color-names.html список] цветов. | ||
+ | * Вводный практикум по работе с выборками (есть ящики с усами): [https://github.com/allatambov/QuantData23/blob/main/qd-practice02-upd.ipynb читать], файл [https://www.dropbox.com/scl/fi/8qhjgfit3mucaxtx7ck4l/flats.csv?rlkey=vfym0gova9x16rket70t5wj7d&dl=0 flats.csv]. | ||
+ | |||
+ | === Неделя 5. Датафреймы Pandas. Знакомство с HTML === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/48dm9c22ayasf17xld7i2/h?rlkey=fplz96n49wkmyycdzmmzf812i&dl=0 Видеозаписи] занятия (разбор практикума 5). | ||
+ | * Операции с датафреймами pandas: часть 2 ([https://github.com/allatambov/ICEF24/blob/main/pandas-intro-part02.ipynb читать], [https://www.dropbox.com/scl/fi/2golnkdufpgov8mmwkngh/pandas-intro-part02.ipynb?rlkey=m8d8wbkylhcsrcyud70tkadg1&dl=0 ipynb]), файл [https://www.dropbox.com/scl/fi/hq6wwid36ns2p6fiegws5/Salaries.csv?rlkey=yka8pmz16id8ti71maaor576f&dl=0 Salaries.csv]. | ||
+ | * Практикум 5. Обрабатываем посты ВКонтакте ([https://github.com/allatambov/ICEF24/blob/main/icef-practice05.ipynb читать], [https://www.dropbox.com/scl/fi/fqgi046je4pxzrbas8czb/icef-practice05.ipynb?rlkey=txjx1dxlxnwj60fmcrb0grj34&dl=0 ipynb]), файл [https://www.dropbox.com/scl/fi/ka5d5ucitk8ri4s2r95jg/final.xlsx?rlkey=x0qongg7nms6cefeca973qb0r&dl=0 final.xlsx], решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice05-solutions.ipynb читать], [https://www.dropbox.com/scl/fi/3vymcpa54jb0o9hajbwny/icef-practice05-solutions.ipynb?rlkey=phhrlrt5shgf7txqga47tcruq&dl=0 ipynb]). | ||
+ | * Знакомство с HTML ([https://www.dropbox.com/scl/fi/6b61quoe20br486gavm7p/Intro_HTML.pdf?rlkey=ges2irgih8hsn03z37wblqsp1&dl=0 слайды]). | ||
+ | |||
+ | === Неделя 6. Парсинг HTML с BeautifulSoup и Selenium === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/jnrj7xj2s0jlx22utgx28/h?rlkey=6elerpp4ksnp0fnl9jw5g51rx&dl=0 Видеозаписи] занятий. | ||
+ | * Практикум 6.1. Парсинг с BeautifulSoup: тэги и атрибуты ([https://github.com/allatambov/ICEF24/blob/main/icef-practice06.ipynb читать], [https://www.dropbox.com/scl/fi/b3xu5t3d7b4g5u301eky8/icef-practice06.ipynb?rlkey=beszu41u7a2vbykq8ksqgl8a1&dl=0 ipynb]), решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice06-solutions.ipynb читать], [https://www.dropbox.com/scl/fi/hkvpwjkzuagsax5hi8ha2/icef-practice06-solutions.ipynb?rlkey=mw7t6b2m4pzb47xiwdzieh8uc&dl=0 ipynb]). | ||
+ | * Практикум 6.2. Управление браузером с Selenium: поиск элементов на странице и XPATH ([https://github.com/allatambov/ICEF24/blob/main/icef-practice06-02.ipynb читать], [https://www.dropbox.com/scl/fi/q6vvw04g0gkuh52hl45r4/icef-practice06-02.ipynb?rlkey=lpv9vfsflhbxskrhqj107h6s9&dl=0 ipynb]), решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice06-02-solutions.ipynb читать], [https://www.dropbox.com/scl/fi/369vz2fyel6v2qpwpjoom/icef-practice06-02-solutions.ipynb?rlkey=hw1lpaqc3jd7mw57d4ldsr4z8&dl=0 ipynb]) | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Обработка таблиц из HTML с помощью pandas ([https://github.com/allatambov/WebScrape24/blob/main/psy-bs-pandas.ipynb читать]) | ||
+ | |||
+ | === Неделя 7. Управление браузером с Selenium: продолжение === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/0szjj5oq0pwjqpqatmlid/AO9zXQGLey5cDPvJP21Q21Y?rlkey=myvfy47twpfx95gzljlqut8cg&dl=0 Видеозаписи] занятий. | ||
+ | * Практикум 7.1. Управление браузером с Selenium: динамические таблицы ([https://www.dropbox.com/scl/fi/pj67oqm2hbvukb643g37q/icef-practice07-01.ipynb?rlkey=8g8myhd62hsgdss9flw6f0eus&dl=0 ipynb]), решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice07-01_solutions.ipynb читать], [https://www.dropbox.com/scl/fi/bh2he1wg8lz7n4qo5fxzn/icef-practice07-01_solutions.ipynb?rlkey=eb3h8u945x2fx80iwqs3mfdhd&dl=0 ipynb]) | ||
+ | * Практикум 7.2. Парсинг HTML и обработка JSON ([https://www.dropbox.com/scl/fi/khugq7c3bd0kdxvkn572o/icef-practice07-02.ipynb?rlkey=s3rbx8l9ly8n4sif57bq35suy&dl=0 ipynb]) | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Скачивание файлов с Selenium ([https://github.com/allatambov/WebScrape24/blob/main/psy-practice07-02.ipynb читать]) | ||
+ | * Управление браузером с Selenium: работа с ВКонтакте и пример скроллинга ([https://github.com/allatambov/WebScrape24/blob/main/psy-practice06-02-solutions.ipynb читать]), решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice07-02_solutions.ipynb читать], [https://www.dropbox.com/scl/fi/r8mxvx799jd7joj3b8b5f/icef-practice07-02_solutions.ipynb?rlkey=ucbdrzy7ufkbqymhmb7gif4to&dl=0 ipynb]) | ||
+ | |||
+ | === Лабораторная работа 5*. Датафреймы pandas === | ||
+ | |||
+ | ''Выполняется по желанию, оценку за эту работу можно перенести на пропущенную''<br> | ||
+ | ''лабораторную или на лабораторную с самой низкой оценкой.'' | ||
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Лабораторная работа !! Задания !! Дедлайн !! Куда сдавать | |
− | + | |- | |
+ | | [https://github.com/allatambov/ICEF24/blob/main/lab05.ipynb Лабораторная работа 5*] || [https://www.dropbox.com/scl/fi/12wyvoa16nv9qluc5lj6w/lab05.ipynb?rlkey=s1u36aasqrhr34f0fb7d8e3qt&dl=0 ipynb] [https://www.dropbox.com/scl/fi/o18712hhk6y0rl5tzt3oz/polit.csv?rlkey=rn9y6srs8utz1zf7d7xeycxof&dl=0 polit.csv]|| 19 апреля 16:20 || [https://www.dropbox.com/request/yLWwBC53VlaGO9QqrfvZ ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
== Домашние задания == | == Домашние задания == | ||
Строка 171: | Строка 210: | ||
|- | |- | ||
| [https://github.com/allatambov/ICEF24/blob/main/icef-hw01.ipynb Домашнее задание 1] || [https://www.dropbox.com/scl/fi/muypoouagcdbbasvhlrta/icef-hw01.ipynb?rlkey=q2zzuxw754z2uguzzy5rjqfsf&dl=0 ipynb] || 1 апреля 23:59 || [https://www.dropbox.com/request/5tSIuKOJ4dIGO4qAyG1z ссылка] на Dropbox | | [https://github.com/allatambov/ICEF24/blob/main/icef-hw01.ipynb Домашнее задание 1] || [https://www.dropbox.com/scl/fi/muypoouagcdbbasvhlrta/icef-hw01.ipynb?rlkey=q2zzuxw754z2uguzzy5rjqfsf&dl=0 ipynb] || 1 апреля 23:59 || [https://www.dropbox.com/request/5tSIuKOJ4dIGO4qAyG1z ссылка] на Dropbox | ||
+ | |- | ||
+ | |- | ||
+ | | Домашнее задание 2 || см. почту || 22 апреля 23:59 || [https://www.dropbox.com/request/oyS4iREQJKgcKFZprc3w ссылка] на Dropbox | ||
|- | |- | ||
|} | |} |
Текущая версия на 14:45, 15 апреля 2024
Дорогие студенты!
Это страница курса «Python для сбора и анализа данных», читаемого в МИЭФ в весеннем семестре 2023-2024 учебного года.
Преподаватель: Тамбовцева Алла Андреевна.
Содержание
- 1 Правила игры
- 2 Программное обеспечение
- 3 Материалы и лабораторные работы
- 3.1 Неделя 0. Подготовка к работе. Настройка рабочего места
- 3.2 Неделя 1. Введение в Python. Переменные и типы данных. Ввод и вывод
- 3.3 Лабораторная работа 1. Логические выражения и условные конструкции
- 3.4 Неделя 2. Строки, кортежи, списки. Цикл for и его аналоги
- 3.5 Лабораторная работа 2. Методы на списках и строках
- 3.6 Неделя 3. Словари и работа с API
- 3.7 Лабораторная работа 3. Функции и lambda-функции
- 3.8 Лабораторная работа 4. Цикл while и его аналоги
- 3.9 Неделя 4. Массивы NumPy и датафреймы Pandas
- 3.10 Неделя 5. Датафреймы Pandas. Знакомство с HTML
- 3.11 Неделя 6. Парсинг HTML с BeautifulSoup и Selenium
- 3.12 Неделя 7. Управление браузером с Selenium: продолжение
- 3.13 Лабораторная работа 5*. Датафреймы pandas
- 4 Домашние задания
Правила игры
- Организационная презентация.
- Формула оценки: 0.2 * Домашние задания + 0.3 * Лабораторные работы + 0.2 * Тест + 0.3 * Экзамен.
- Дедлайны у лабораторных работ жёсткие и не переносятся.
- Домашние задания, сданные позже дедлайна, оцениваются со штрафом: в пределах часа – 15% от оценки, суток – 30%, двух суток – 50%.
- Вспомогательный онлайн-курс «Python как иностранный».
Программное обеспечение
Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь), который включает в себя интерпретатор языка Python, библиотеки
для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в Jupyter Notebook онлайн
, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). Подробности по установке и работе – см. ниже в неделе 0.
Материалы и лабораторные работы
Неделя 0. Подготовка к работе. Настройка рабочего места
Для подготовки к работе на курсе можно ознакомиться со следующими материалами онлайн-курса:
- Видео. Подготовка рабочего места, инструкция по открытию файлов в Jupyter Notebook.
- Видео. Первая программа, задачи для тренировки.
А также с материалами по работе в Jupyter Notebook и Google Colab:
- Запуск Jupyter без Anaconda Navigator (инструкция).
- Работа в Jupyter Notebook (видео), работа в Google Colab (видео).
Дополнительно:
- Набор текста в Jupyter (видео, ipynb, example.jpeg).
- Markdown: больше про Markdown, знакомство с Jupyter Notebook и Markdown (читать, ipynb).
- LaTeX для формул и не только: Overleaf, документация, материалы по LaTeX.
Неделя 1. Введение в Python. Переменные и типы данных. Ввод и вывод
- Видеозаписи занятия и «сырой» ipynb-файл с занятия.
- Вычисления в Python, переменные и типы данных (читать, ipynb).
- Ввод и вывод, форматирование строк, форматирование дат (читать, ipynb).
- Практикум 1 (читать, ipynb), решения (читать, ipynb).
- Интерактивные виджеты в Jupyter (альтернатива стандартному вводу и не только).
Дополнительно:
- Стандарты оформления кода Python: PEP8.
- Pythontutor: визуализатор кода, вычисления, ввод и вывод.
- Вычисления с заданной точностью с модулем decimal (документация).
- Вычисления с обыкновенными дробями с модулем fractions (документация).
Лабораторная работа 1. Логические выражения и условные конструкции
Для выполнения лабораторной работы необходимо вспомнить формулировку логических выражений
и конструкцию if-elif-else.
Для этого (на выбор) можно:
- Прослушать материал темы 2 Условия и логические выражения онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Логические выражения и условные конструкции.
- Изучить материалы онлайн-учебника Pythontutor.
Лабораторная работа | Задания | Дедлайн | Куда сдавать |
---|---|---|---|
Лабораторная работа 1 | ipynb | 16 февраля 16:20 | ссылка на Dropbox |
Неделя 2. Строки, кортежи, списки. Цикл for и его аналоги
- Видеозаписи занятия и «сырой» ipynb-файл с занятия.
- Конструкция try-except (статья).
- Строки, кортежи, списки и цикл for (читать, скачать).
- Цикл for, списковые включения, функции zip() и enumerate() (читать, скачать).
- Практикум 2 (читать, ipynb), решения (читать, скачать).
- Файлы для практикума: stop_words_ru.txt, guitar.jpeg.
Дополнительно:
Лабораторная работа 2. Методы на списках и строках
Для выполнения лабораторной работы необходимо понимать устройство методов на разных объектах
и уметь применять основные методы на списках и строках.
Для этого (на выбор) можно:
- Прослушать материал темы 5 Методы онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Методы на строках, конспект лекции Методы на списках.
- Изучить материалы онлайн-учебника Pythontutor: цикл for, строки, списки, split(), join().
Лабораторная работа | Задания | Дедлайн | Куда сдавать |
---|---|---|---|
Лабораторная работа 2 | ipynb | 1 марта 16:20 | ссылка на Dropbox |
Неделя 3. Словари и работа с API
- Видеозаписи занятия и «сырой» ipynb-файл с занятия.
- Словари (читать, ipynb).
- Практикум 3.1. Словари и введение в работу с API (читать, ipynb), решения (читать, ipynb).
- Практикум 3.2. Работа с API ВКонтакте (читать, ipynb), решения (читать, ipynb).
Дополнительно:
Лабораторная работа 3. Функции и lambda-функции
Для выполнения лабораторной работы необходимо уметь писать пользовательские функции,
уметь писать lambda-функции и сочетать их с другими функциями Python.
Для этого можно:
- Прослушать материал темы 8 Функции (достаточно первого раздела) онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Функции (для желающих – более подробная лекция И.В.Щурова).
- Прочитать конспект по lambda-функциям.
Лабораторная работа | Задания | Дедлайн | Куда сдавать |
---|---|---|---|
Лабораторная работа 3 | ipynb | 11 марта 23:59 | ссылка на Dropbox |
Лабораторная работа 4. Цикл while и его аналоги
Для выполнения лабораторной работы необходимо самостоятельно познакомиться с циклом while
и конструкцией цикл for + оператор break (последняя – по желанию).
Для этого можно:
- Прослушать материал темы 3 Цикл while онлайн-курса «Python как иностранный».
- Прочитать конспект краткой лекции Цикл while и его альтернативы.
- Изучить материалы онлайн-учебника Pythontutor: цикл while.
Лабораторная работа | Задания | Дедлайн | Куда сдавать |
---|---|---|---|
Лабораторная работа 4 | ipynb | 15 марта 16:20 | ссылка на Dropbox |
Неделя 4. Массивы NumPy и датафреймы Pandas
- Видеозаписи занятия и «сырой» ipynb-файл с занятия.
- Массивы NumPy, последовательности и датафреймы Pandas (читать, ipynb).
- Операции с датафреймами pandas: часть 1 (читать, ipynb), файл Salaries.csv.
Дополнительно:
- Официальная документация NumPy и Pandas, Matplotlib.
- Цвета в Python, веселый список цветов.
- Вводный практикум по работе с выборками (есть ящики с усами): читать, файл flats.csv.
Неделя 5. Датафреймы Pandas. Знакомство с HTML
- Видеозаписи занятия (разбор практикума 5).
- Операции с датафреймами pandas: часть 2 (читать, ipynb), файл Salaries.csv.
- Практикум 5. Обрабатываем посты ВКонтакте (читать, ipynb), файл final.xlsx, решения (читать, ipynb).
- Знакомство с HTML (слайды).
Неделя 6. Парсинг HTML с BeautifulSoup и Selenium
- Видеозаписи занятий.
- Практикум 6.1. Парсинг с BeautifulSoup: тэги и атрибуты (читать, ipynb), решения (читать, ipynb).
- Практикум 6.2. Управление браузером с Selenium: поиск элементов на странице и XPATH (читать, ipynb), решения (читать, ipynb)
Дополнительно:
- Обработка таблиц из HTML с помощью pandas (читать)
Неделя 7. Управление браузером с Selenium: продолжение
- Видеозаписи занятий.
- Практикум 7.1. Управление браузером с Selenium: динамические таблицы (ipynb), решения (читать, ipynb)
- Практикум 7.2. Парсинг HTML и обработка JSON (ipynb)
Дополнительно:
- Скачивание файлов с Selenium (читать)
- Управление браузером с Selenium: работа с ВКонтакте и пример скроллинга (читать), решения (читать, ipynb)
Лабораторная работа 5*. Датафреймы pandas
Выполняется по желанию, оценку за эту работу можно перенести на пропущенную
лабораторную или на лабораторную с самой низкой оценкой.
Лабораторная работа | Задания | Дедлайн | Куда сдавать |
---|---|---|---|
Лабораторная работа 5* | ipynb polit.csv | 19 апреля 16:20 | ссылка на Dropbox |
Домашние задания
Домашнее задание | Задания | Дедлайн | Куда сдавать |
---|---|---|---|
Домашнее задание 1 | ipynb | 1 апреля 23:59 | ссылка на Dropbox |
Домашнее задание 2 | см. почту | 22 апреля 23:59 | ссылка на Dropbox |