Python для сбора и анализа данных: различия между версиями
(не показано 60 промежуточных версий этого же участника) | |||
Строка 8: | Строка 8: | ||
== Правила игры == | == Правила игры == | ||
− | * Организационная презентация. | + | * Организационная [https://www.dropbox.com/scl/fi/c7hc6ivlk9mj3b4wh30oi/00.pdf?rlkey=bmjedpkpuzijylnic6zcio12t&dl=0 презентация]. |
* Формула оценки: '''0.2 * Домашние задания + 0.3 * Лабораторные работы + 0.2 * Тест + 0.3 * Экзамен'''. | * Формула оценки: '''0.2 * Домашние задания + 0.3 * Лабораторные работы + 0.2 * Тест + 0.3 * Экзамен'''. | ||
* Дедлайны у лабораторных работ жёсткие и не переносятся. | * Дедлайны у лабораторных работ жёсткие и не переносятся. | ||
Строка 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. |
== Материалы и лабораторные работы == | == Материалы и лабораторные работы == | ||
− | === Неделя 0. Подготовка к работе. Настройка рабочего места | + | === Неделя 0. Подготовка к работе. Настройка рабочего места === |
Для подготовки к работе на курсе можно ознакомиться со следующими материалами [https://edu.hse.ru/course/view.php?id=133389 онлайн-курса]: | Для подготовки к работе на курсе можно ознакомиться со следующими материалами [https://edu.hse.ru/course/view.php?id=133389 онлайн-курса]: | ||
Строка 36: | Строка 36: | ||
* Набор текста в Jupyter ([https://www.dropbox.com/scl/fi/82bezpi5dj3ruq2t3du6w/text-markdown.mp4?rlkey=oh1aa3wutb2ev0lr0wcf9walw&dl=0 видео], [https://www.dropbox.com/scl/fi/vjw60t7czpmslhzm93jr7/00-intro.ipynb?rlkey=7f1xwpb7mmd2flsxbvl80gvm1&dl=0 ipynb], [https://www.dropbox.com/scl/fi/x3hg36e0mg37zjjkl7tfc/example.jpeg?rlkey=3bhxczeaspb46f9lmosrzs11o&dl=0 example.jpeg]). | * Набор текста в Jupyter ([https://www.dropbox.com/scl/fi/82bezpi5dj3ruq2t3du6w/text-markdown.mp4?rlkey=oh1aa3wutb2ev0lr0wcf9walw&dl=0 видео], [https://www.dropbox.com/scl/fi/vjw60t7czpmslhzm93jr7/00-intro.ipynb?rlkey=7f1xwpb7mmd2flsxbvl80gvm1&dl=0 ipynb], [https://www.dropbox.com/scl/fi/x3hg36e0mg37zjjkl7tfc/example.jpeg?rlkey=3bhxczeaspb46f9lmosrzs11o&dl=0 example.jpeg]). | ||
* Markdown: [https://gist.github.com/Jekins/2bf2d0638163f1294637 больше] про Markdown, знакомство с 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 ipynb]). | * Markdown: [https://gist.github.com/Jekins/2bf2d0638163f1294637 больше] про Markdown, знакомство с 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 ipynb]). | ||
− | * LaTeX: [https://www.overleaf.com/ Overleaf], [https://www.overleaf.com/learn документация], [https://github.com/allatambov/Latex материалы] по LaTeX. | + | * LaTeX для формул и не только: [https://www.overleaf.com/ Overleaf], [https://www.overleaf.com/learn документация], [https://github.com/allatambov/Latex материалы] по LaTeX. |
+ | |||
+ | === Неделя 1. Введение в Python. Переменные и типы данных. Ввод и вывод === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/kcdjrvxgc1771ua7uqhu2/h?rlkey=zls1cuagof5v0d668k2xm07yi&dl=0 Видеозаписи] занятия и «сырой» ipynb-файл с занятия. | ||
+ | * Вычисления в Python, переменные и типы данных ([https://nbviewer.org/github/allatambov/ICEF24/blob/main/01-calculations-variables.ipynb читать], [https://www.dropbox.com/scl/fi/bgrlqtegkxe13knzy1qjy/01-calculations-variables.ipynb?rlkey=3alq7vk85gqsykl0bbiwk6bv4&dl=0 ipynb]). | ||
+ | * Ввод и вывод, форматирование строк, форматирование дат ([https://github.com/allatambov/ICEF24/blob/main/02-input-output-format.ipynb читать], [https://www.dropbox.com/scl/fi/yrhmzdo12upmvxbpvbaq0/02-input-output-format.ipynb?rlkey=yo8lnz2d74j4z3u9dibaom6o4&dl=0 ipynb]). | ||
+ | * Практикум 1 ([https://nbviewer.org/github/allatambov/ICEF24/blob/main/icef-practice01.ipynb читать], [https://www.dropbox.com/scl/fi/0as7zwt8wsbpsg6oiits2/icef-practice01.ipynb?rlkey=52y2bclkwwqzikry7ej00ishu&dl=0 ipynb]), решения ([https://nbviewer.org/github/allatambov/ICEF24/blob/main/icef-practice01-solutions.ipynb читать], [https://www.dropbox.com/scl/fi/udp7lrab5kl0lgbdxqm4v/icef-practice01-solutions.ipynb?rlkey=61mfg0pqo54vpk8auyxysb6i0&dl=0 ipynb]). | ||
+ | * Интерактивные [https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Basics.html виджеты] в Jupyter (альтернатива стандартному вводу и не только). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Стандарты оформления кода Python: [https://peps.python.org/pep-0008/ PEP8]. | ||
+ | * Pythontutor: [http://pythontutor.ru/visualizer/ визуализатор] кода, [https://pythontutor.ru/lessons/int_and_float/ вычисления], [https://pythontutor.ru/lessons/inout_and_arithmetic_operations/ ввод и вывод]. | ||
+ | * Вычисления с заданной точностью с модулем decimal ([https://docs.python.org/3/library/decimal.html документация]). | ||
+ | * Вычисления с обыкновенными дробями с модулем fractions ([https://docs.python.org/3/library/fractions.html документация]). | ||
+ | |||
+ | === Лабораторная работа 1. Логические выражения и условные конструкции === | ||
+ | |||
+ | Для выполнения лабораторной работы необходимо вспомнить формулировку логических выражений <br> | ||
+ | и конструкцию if-elif-else. | ||
+ | Для этого (на выбор) можно: | ||
+ | |||
+ | * Прослушать материал [https://edu.hse.ru/course/view.php?id=133389§ion=2 темы 2] ''Условия и логические выражения'' онлайн-курса «Python как иностранный». | ||
+ | * Прочитать [https://nbviewer.org/github/allatambov/PyPolit2023/blob/main/testing-conditions.ipynb конспект] лекции ''Логические выражения и условные конструкции''. | ||
+ | * Изучить материалы онлайн-учебника [https://pythontutor.ru/lessons/ifelse/ Pythontutor]. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Лабораторная работа !! Задания !! Дедлайн !! Куда сдавать | ||
+ | |- | ||
+ | | [https://github.com/allatambov/ICEF24/blob/main/lab01.ipynb Лабораторная работа 1] || [https://www.dropbox.com/scl/fi/h13p8qgbs2q2i25yspccp/lab01.ipynb?rlkey=b8vkey0ab47na4txy5ilbxt9k&dl=0 ipynb] || 16 февраля 16:20 || [https://www.dropbox.com/request/H73Pp2Yc4q6civKr1iTf ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === Неделя 2. Строки, кортежи, списки. Цикл for и его аналоги === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/fdhd8958pl2jprj6vkex0/h?rlkey=n2nfc2fz8ydehejtxydcrryui&dl=0 Видеозаписи] занятия и «сырой» ipynb-файл с занятия. | ||
+ | * Конструкция try-except ([https://pythonworld.ru/tipy-dannyx-v-python/isklyucheniya-v-python-konstrukciya-try-except-dlya-obrabotki-isklyuchenij.html статья]). | ||
+ | * Строки, кортежи, списки и цикл for ([https://github.com/allatambov/ICEF24/blob/main/03-sequences-for.ipynb читать], [https://www.dropbox.com/scl/fi/jks50w0wrlm8xr8j2i5h1/03-sequences-for.ipynb?rlkey=7izjko484g7r77munrghfaxnr&dl=0 скачать]). | ||
+ | * Цикл for, списковые включения, функции zip() и enumerate() ([https://github.com/allatambov/ICEF24/blob/main/04-for-and-friends.ipynb читать], [https://www.dropbox.com/scl/fi/7r9fghymtzvg4kffmovhc/04-for-and-friends.ipynb?rlkey=t170npm3jn19ypct2ips8lzgb&dl=0 скачать]). | ||
+ | * Практикум 2 ([https://github.com/allatambov/ICEF24/blob/main/icef-practice02.ipynb читать], [https://www.dropbox.com/scl/fi/rewcqifhaqcldqflx3j3m/icef-practice02.ipynb?rlkey=7d23wme75u3zps6h2gad2c0z8&dl=0 ipynb]), решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice02-solutions.ipynb читать], [https://www.dropbox.com/scl/fi/0uoldt71eo2u33d5p9a42/icef-practice02-solutions.ipynb?rlkey=vm4llqpbczmbbz3cs42ej6rum&dl=0 скачать]). | ||
+ | * Файлы для практикума: [https://www.dropbox.com/scl/fi/tiwd4j5xyq1n7ajtrl0on/stop_words_ru.txt?rlkey=b7wghr67ovbmwucga3ffvjlnv&dl=0 stop_words_ru.txt], [https://www.dropbox.com/scl/fi/giy325lkaijhvsg8i3vuc/guitar.jpeg?rlkey=ui5pqod0jyo3slx8mm70f0xdh&dl=0 guitar.jpeg]. | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Чтение и запись txt-файлов: [https://github.com/allatambov/PyPolit2023/blob/main/txt-files.ipynb конспект]. | ||
+ | * Построение облаков слов: подробный [https://www.datacamp.com/tutorial/wordcloud-python тьюториал] от DataCamp. | ||
+ | |||
+ | === Лабораторная работа 2. Методы на списках и строках === | ||
+ | |||
+ | Для выполнения лабораторной работы необходимо понимать устройство методов на разных объектах <br> | ||
+ | и уметь применять основные методы на списках и строках. | ||
+ | Для этого (на выбор) можно: | ||
+ | |||
+ | * Прослушать материал [https://edu.hse.ru/course/view.php?id=133389§ion=5 темы 5] ''Методы'' онлайн-курса «Python как иностранный». | ||
+ | * Прочитать [https://github.com/allatambov/PyPerm23/blob/main/str-methods.ipynb конспект] лекции ''Методы на строках'', [https://github.com/allatambov/PyPerm23/blob/main/lists-methods.ipynb конспект] лекции ''Методы на списках''. | ||
+ | * Изучить материалы онлайн-учебника Pythontutor: [https://pythontutor.ru/lessons/for_loop/ цикл for], [https://pythontutor.ru/lessons/str/ строки], [https://pythontutor.ru/lessons/lists/ списки, split(), join()]. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Лабораторная работа !! Задания !! Дедлайн !! Куда сдавать | ||
+ | |- | ||
+ | | [https://github.com/allatambov/ICEF24/blob/main/lab02.ipynb Лабораторная работа 2] || [https://www.dropbox.com/scl/fi/nz8gh4jxz5mvw03n2k40z/lab02.ipynb?rlkey=w01si9p7urtjcow90zqyu19xo&dl=0 ipynb] || 1 марта 16:20 || [https://www.dropbox.com/request/gGaW8bQldd46EzeGX5U3 ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === Неделя 3. Словари и работа с API === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/fya8pth9g2h5e83ckk96l/h?rlkey=6t85hbd27ct63lidxnmp68bzo&dl=0 Видеозаписи] занятия и «сырой» ipynb-файл с занятия. | ||
+ | * Словари ([https://github.com/allatambov/ICEF24/blob/main/dicts.ipynb читать], [https://www.dropbox.com/scl/fi/z3o76c4oygoj9cuv8kso9/dicts.ipynb?rlkey=3g9p0z7509623l54620ypw2gw&dl=0 ipynb]). | ||
+ | * Практикум 3.1. Словари и введение в работу с API ([https://github.com/allatambov/ICEF24/blob/main/icef-practice03-01.ipynb читать], [https://www.dropbox.com/scl/fi/822fj83hqpiwhlxbx3aal/icef-practice03-01.ipynb?rlkey=r7jymrohre758thlmpwcgcpxm&dl=0 ipynb]), решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice03-01-solutions.ipynb читать], [https://www.dropbox.com/scl/fi/p9a0kh5z6rem4903380br/icef-practice03-01-solutions.ipynb?rlkey=8432aksikhtcsra1c7zszgrno&dl=0 ipynb]). | ||
+ | * Практикум 3.2. Работа с API ВКонтакте ([https://github.com/allatambov/ICEF24/blob/main/icef-practice03-02.ipynb читать], [https://www.dropbox.com/scl/fi/9ya9479b4hgr2tqipf1dw/icef-practice03-02.ipynb?rlkey=8ols0slbfjor2yodo1btayjl5&dl=0 ipynb]), решения ([https://github.com/allatambov/ICEF24/blob/main/icef-practice03-02-solutions.ipynb читать], [https://www.dropbox.com/scl/fi/m1ojmfhlm0ti46l7qem3p/icef-practice03-02-solutions.ipynb?rlkey=vs0j5vp53xv1e4nw393oohxt8&dl=0 ipynb]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Pythontutor: [https://pythontutor.ru/lessons/sets/ множества], [https://pythontutor.ru/lessons/dicts/ словари]. | ||
+ | |||
+ | === Лабораторная работа 3. Функции и lambda-функции === | ||
+ | |||
+ | Для выполнения лабораторной работы необходимо уметь писать пользовательские функции,<br> | ||
+ | уметь писать lambda-функции и сочетать их с другими функциями Python. | ||
+ | |||
+ | Для этого можно: | ||
+ | |||
+ | * Прослушать материал [https://edu.hse.ru/course/view.php?id=133389§ion=8 темы 8] ''Функции'' (достаточно первого раздела) онлайн-курса «Python как иностранный». | ||
+ | * Прочитать [https://github.com/allatambov/PyPerm23/blob/main/functions-short.ipynb конспект] лекции ''Функции'' (для желающих – более подробная [https://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb лекция] И.В.Щурова). | ||
+ | * Прочитать [https://github.com/allatambov/ICEF24/blob/main/lambda-functions.ipynb конспект] по lambda-функциям. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Лабораторная работа !! Задания !! Дедлайн !! Куда сдавать | ||
+ | |- | ||
+ | | [https://github.com/allatambov/ICEF24/blob/main/lab03.ipynb Лабораторная работа 3] || [https://www.dropbox.com/scl/fi/51zk64h1yi0j9pkz78t7o/lab03.ipynb?rlkey=pok7lx6cmhxifldpj6bmcbevy&dl=0 ipynb] || 11 марта 23:59 || [https://www.dropbox.com/request/rNTY3RT2LDsEtSQqmP2W ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === Лабораторная работа 4. Цикл while и его аналоги === | ||
+ | |||
+ | Для выполнения лабораторной работы необходимо самостоятельно познакомиться с циклом while<br> и конструкцией цикл for + оператор break (последняя – по желанию). | ||
+ | Для этого можно: | ||
+ | |||
+ | * Прослушать материал [https://edu.hse.ru/course/view.php?id=133389§ion=3 темы 3] ''Цикл while'' онлайн-курса «Python как иностранный». | ||
+ | * Прочитать [https://github.com/allatambov/PyPolit2023/blob/main/while-loop.ipynb конспект] краткой лекции ''Цикл while и его альтернативы''. | ||
+ | * Изучить материалы онлайн-учебника Pythontutor: [https://pythontutor.ru/lessons/while/ цикл while]. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Лабораторная работа !! Задания !! Дедлайн !! Куда сдавать | ||
+ | |- | ||
+ | | [https://github.com/allatambov/ICEF24/blob/main/lab04.ipynb Лабораторная работа 4] || [https://www.dropbox.com/scl/fi/19g2zmjk1v09d3e4vcmq2/lab04.ipynb?rlkey=scq5bdpsyvb9wqc107lwimxb2&dl=0 ipynb] || 15 марта 16:20 || [https://www.dropbox.com/request/3YKQponIDKKLxKTRHAQW ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === Неделя 4. Массивы NumPy и датафреймы Pandas === | ||
+ | |||
+ | * [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]). | ||
+ | * Операции с датафреймами 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]. | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Официальная документация [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 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | == Домашние задания == | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Домашнее задание !! Задания !! Дедлайн !! Куда сдавать | ||
+ | |- | ||
+ | | [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 |