Python для сбора и анализа данных: различия между версиями
(не показано 75 промежуточных версий этого же участника) | |||
Строка 41: | Строка 41: | ||
* Стандарты оформления кода Python: [https://peps.python.org/pep-0008/ PEP8], проверка соответствия кода стандартам: [http://pep8online.com/ PEP8 online check]. | * Стандарты оформления кода Python: [https://peps.python.org/pep-0008/ PEP8], проверка соответствия кода стандартам: [http://pep8online.com/ PEP8 online check]. | ||
− | ===Занятие 02. Списки и цикл for. Методы split() и join() (21 и 27 февраля) === | + | ===Занятие 02. Списки и цикл for. Методы .split() и .join() (21 и 27 февраля) === |
* [https://www.dropbox.com/scl/fo/stat1ej8zbta8gudqxvw9/h?dl=0&rlkey=4egclv15rwwsku7zhauz88jqs Видеозапись] занятия, сырые [https://www.dropbox.com/scl/fo/otc7zv7ct02ls6qqvvszg/h?dl=0&rlkey=di4eq91dn3jn3tjwne6snnhya ipynb-файлы] с занятия. | * [https://www.dropbox.com/scl/fo/stat1ej8zbta8gudqxvw9/h?dl=0&rlkey=4egclv15rwwsku7zhauz88jqs Видеозапись] занятия, сырые [https://www.dropbox.com/scl/fo/otc7zv7ct02ls6qqvvszg/h?dl=0&rlkey=di4eq91dn3jn3tjwne6snnhya ipynb-файлы] с занятия. | ||
* Списки и цикл for ([https://github.com/allatambov/PyICEF-2023/blob/main/lists-1.ipynb читать], [https://www.dropbox.com/s/54yh2pre6s0h57i/lists-1.ipynb?dl=0 ipynb]). Методы .split() и .join() ([https://github.com/allatambov/PyICEF-2023/blob/main/lists-2.ipynb читать], [https://www.dropbox.com/s/x1mskkwcvh8ahbe/lists-2.ipynb?dl=0 ipynb]). | * Списки и цикл for ([https://github.com/allatambov/PyICEF-2023/blob/main/lists-1.ipynb читать], [https://www.dropbox.com/s/54yh2pre6s0h57i/lists-1.ipynb?dl=0 ipynb]). Методы .split() и .join() ([https://github.com/allatambov/PyICEF-2023/blob/main/lists-2.ipynb читать], [https://www.dropbox.com/s/x1mskkwcvh8ahbe/lists-2.ipynb?dl=0 ipynb]). | ||
− | * Практикум 2 ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems02.ipynb читать], [https://www.dropbox.com/s/rwx3fspvk7z0r7d/icef-problems02.ipynb?dl=0 ipynb]), решения ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems02-solutions.ipynb читать], [https://www.dropbox.com/s/oilmrypr0c7evm1/icef-problems02-solutions.ipynb?dl=0 ipynb]). | + | * Практикум 2 ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems02.ipynb читать], [https://www.dropbox.com/s/rwx3fspvk7z0r7d/icef-problems02.ipynb?dl=0 ipynb]), решения задач ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems02-solutions.ipynb читать], [https://www.dropbox.com/s/oilmrypr0c7evm1/icef-problems02-solutions.ipynb?dl=0 ipynb]). |
− | + | Дополнительно: | |
− | * Альтернативы циклу for. Кортежи и функция zip(). | + | * Pythontutor: [https://pythontutor.com/visualize.html#mode=edit визуализатор] кода. |
− | * Практикум 3 ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems03.ipynb читать], [https://www.dropbox.com/s/vsp4umzi1febvmu/icef-problems03.ipynb?dl=0 ipynb]). | + | * Pythontutor: [https://pythontutor.ru/lessons/lists/ списки], [https://pythontutor.ru/lessons/for_loop/ цикл for]. |
− | * | + | |
+ | ===Занятие 03. Методы на строках. Чтение и запись txt-файлов. (28 февраля и 2 марта) === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/oygbnqh4xboihlehvel9f/h?dl=0&rlkey=q7m7yck0ep8bi5a0v84uh7o5m Видеозапись] занятия, [https://www.dropbox.com/scl/fo/m385kro1mysmblp6texel/h?dl=0&rlkey=g6q9730tk85c4uexdrdp47ip3 сырые] ipynb-файлы с занятия. | ||
+ | * Альтернативы циклу for (читать, ipynb). Кортежи и функция zip() ([https://github.com/allatambov/PyICEF-2023/blob/main/tuples-zip.ipynb читать], [https://www.dropbox.com/s/rjbxjwrnsraucec/tuples-zip.ipynb?dl=0 ipynb]). | ||
+ | * Методы на строках ([https://github.com/allatambov/PyICEF-2023/blob/main/str-methods.ipynb читать], [https://www.dropbox.com/s/cefimocpfa3d91y/str-methods.ipynb?dl=0 ipynb]). Чтение и запись txt-файлов ([https://github.com/allatambov/PyICEF-2023/blob/main/txt-work.ipynb читать], [https://www.dropbox.com/s/he1xhc1gtg5gaq4/txt-work.ipynb?dl=0 ipynb]), файл [https://www.dropbox.com/s/6m331ceu62sgtsn/intro.txt?dl=0 intro.txt]. | ||
+ | * Практикум 3 ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems03.ipynb читать], [https://www.dropbox.com/s/vsp4umzi1febvmu/icef-problems03.ipynb?dl=0 ipynb]), решения задач ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/icef-problems03-solutions.ipynb читать], [https://www.dropbox.com/s/g5yzc0ruvyhfs5i/icef-problems03-solutions.ipynb?dl=0 ipynb]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * [https://pymorphy2.readthedocs.io/en/stable/user/index.html Документация] библиотеки pymorphy2 (морфологический анализатор). | ||
+ | * [https://www.datacamp.com/tutorial/wordcloud-python Тьюториал] по построению облака слов с библиотекой wordcloud. | ||
+ | * Библиотека [https://pypi.org/project/dostoevsky/ dostoevsky] для анализа тональности текстов. | ||
+ | |||
+ | ===Занятие 04. Условные конструкции и цикл while. (7 и 9 марта) === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/7xxnjgelpupu9uy4ix032/h?dl=0&rlkey=rfmpso82tne5js7tsoz0ekp8p Видеозапись] занятия, сырые [https://www.dropbox.com/scl/fo/icqqg2oxaia2ygm2sd10u/h?dl=0&rlkey=7z7rizeyr7a07l4myn7uadl78 ipynb-файлы] с занятия. | ||
+ | * Логические выражения и условные конструкции ([https://github.com/allatambov/PyICEF-2023/blob/main/conditions.ipynb читать], [https://www.dropbox.com/s/fm0en30sx2xpo56/conditions.ipynb?dl=0 ipynb]). Цикл while ([https://github.com/allatambov/PyICEF-2023/blob/main/while.ipynb читать], [https://www.dropbox.com/s/04r813yrh0go74b/while.ipynb?dl=0 ipynb]). | ||
+ | * Практикум 4 ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems04.ipynb читать], [https://www.dropbox.com/s/ixuylobqqneblgb/icef-problems04.ipynb?dl=0 ipynb]), файл [https://www.dropbox.com/s/x44313tzxdrrpbb/ducks.txt?dl=0 ducks.txt], решения задач ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems04-solutions.ipynb читать], [https://www.dropbox.com/s/fkjtna4ii7l47sz/icef-problems04-solutions.ipynb?dl=0 ipynb]). | ||
+ | |||
+ | ===Занятие 05. Множества и словари. Знакомство с API (14 и 16 марта) === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/b9tj577wqwty01z9r1v04/h?dl=0&rlkey=md567h0lhag62ulmrps2azrrz Видеозапись] занятия, сырые [https://www.dropbox.com/scl/fo/zxs6a8yiuw3kgfuh9epiw/h?dl=0&rlkey=5kqy60b3lh0n1vcvmmzzgkyqy ipynb-файлы] с занятия. | ||
+ | * Множества (читать, ipynb). Словари ([https://github.com/allatambov/PyICEF-2023/blob/main/dicts.ipynb читать], [https://www.dropbox.com/s/x7x9mhiqx0saxmg/dicts.ipynb?dl=0 ipynb]). | ||
+ | * [https://allatambov.github.io/pypolit/vk-auth.pdf Инструкция] по получению доступа к API ВКонтакте. | ||
+ | * Практикум 5 ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-practice-vk.ipynb читать], [https://www.dropbox.com/s/95fwuzhlkhbo07f/icef-practice-vk.ipynb?dl=0 ipynb]), решения задач ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-practice-vk-solutions.ipynb читать], [https://www.dropbox.com/s/uawvay4j49kesq5/icef-practice-vk-solutions.ipynb?dl=0 ipynb]). | ||
+ | |||
+ | ===Занятие 06. Функции. Массивы и датафреймы pandas (21 и 23 марта) === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/3mjrv7zzzeqcargkgm2sl/h?dl=0&rlkey=ptf9q7oqunb214prnf4c3oxcp Видеозапись] занятия, сырые [https://www.dropbox.com/scl/fo/mnmonax5f3mpf8618soiv/h?dl=0&rlkey=ut81a7kvnikegjo6c0c0q7c6i ipynb-файлы] с занятия. | ||
+ | * Функции: полная [https://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb лекция] Щурова И.В., краткий конспект нашей лекции ([https://github.com/allatambov/PyICEF-2023/blob/main/functions-short.ipynb читать], [https://www.dropbox.com/s/uoh5hcx0tq43r5s/functions-short.ipynb?dl=0 ipynb]). | ||
+ | * Lambda-функции ([https://github.com/allatambov/PyICEF-2023/blob/main/lambda-functions.ipynb читать], [https://www.dropbox.com/s/03h3pn0dnl4voc7/lambda-functions.ipynb?dl=0 ipynb]). | ||
+ | * Практикум 6 ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems06.ipynb читать], [https://www.dropbox.com/s/6czpgdiz1nxqojg/icef-problems06.ipynb?dl=0 ipynb]), решения практикума ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems06-solutions.ipynb читать], [https://www.dropbox.com/s/n0wbufph0jtey8u/icef-problems06-solutions.ipynb?dl=0 ipynb]). | ||
+ | * Массивы и датафреймы pandas ([https://github.com/allatambov/PyICEF-2023/blob/main/arrays-pandas.ipynb читать], [https://www.dropbox.com/s/5pcwbisrppj1dh6/arrays-pandas.ipynb?dl=0 скачать]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Pythontutor: [https://pythontutor.ru/lessons/functions/ функции] | ||
+ | * Создание модулей и библиотек в Python: [https://packaging.python.org/en/latest/tutorials/packaging-projects/ документация] | ||
+ | |||
+ | ===Занятие 07. Введение в HTML. Парсинг с BeautifulSoup (3 и 5 апреля) === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/ulplzct3c1iotjrs8pcn6/h?dl=0&rlkey=y2ochayttkxtim8kfrcdlvp7b Видеозапись] занятия, сырые [https://www.dropbox.com/scl/fo/o986mce03wens19xhgt25/h?dl=0&rlkey=mpaq0l9kh1lp84vip2d063891 ipynb-файлы] с занятия. | ||
+ | * Знакомство с HTML ([https://www.dropbox.com/s/fzx9vp5iaaosy5c/Intro_HTML.pdf?dl=0 слайды]). | ||
+ | * Практикум по парсингу HTML с BeautifulSoup ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems07.ipynb читать], [https://www.dropbox.com/s/r690gk70kk2v3x2/icef-problems07.ipynb?dl=0 ipynb]), решения ([https://github.com/allatambov/PyICEF-2023/blob/main/icef-problems07-solutions.ipynb читать], [https://www.dropbox.com/s/ehg7e4g4hovpxfp/icef-problems07-solutions.ipynb?dl=0 ipynb]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * [https://www.w3schools.com/html/default.asp Тьюториал] по HTML от W3schools. | ||
+ | * Сайт [https://codepen.io/ codepen.io] для фронт-энд разработчиков. | ||
+ | |||
+ | ===Занятие 08. Примеры парсинга с BeautifulSoup и Pandas (11 и 13 апреля) === | ||
+ | |||
+ | * [https://www.dropbox.com/scl/fo/tllkrlnes9d9tcu3ofbu4/h?dl=0&rlkey=1ewjiyd8ouec5rrjv6lj7vmku Видеозапись] занятия, сырые [https://www.dropbox.com/scl/fo/j027kenao67isvhexxvwv/h?dl=0&rlkey=a1un6qo4j8adat7118hdizu9e ipynb-файлы] с занятия. | ||
+ | * Практикум по сбору информации в «псевдотабличном» виде ([https://github.com/allatambov/PyICEF-2023/blob/main/practice-bs.ipynb читать], [https://www.dropbox.com/s/lquggk4bnc5r4vs/practice-bs.ipynb?dl=0 ipynb]). | ||
+ | * Обработка таблиц внутри HTML с BeautifulSoup и pandas ([https://github.com/allatambov/PyICEF-2023/blob/main/bs-pandas.ipynb читать], [https://www.dropbox.com/s/xp7eft7m8yiqej0/bs-pandas.ipynb?dl=0 ipynb]). | ||
+ | |||
+ | ===Занятие 09. Примеры парсинга с Selenium (20 апреля) === | ||
+ | |||
+ | * [https://www.dropbox.com/s/hq4z16wzizehejs/CLASS09.mp4?dl=0 Видеозапись] занятия, сырой [https://www.dropbox.com/s/gkygabdb2opllt9/CLASS09.ipynb?dl=0 ipynb] с занятия. | ||
+ | * [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 читать], [https://www.dropbox.com/s/3u5st1emsh5cbrq/re-short.ipynb?dl=0 скачать]), применение ''re'' для обработки JSON-строк в HTML ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/parsing-handling-incorrect-json.ipynb читать]). | ||
+ | * Практикум по управлению браузером с Selenium на примере Кинопоиска ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/selenium-kino.ipynb читать], [https://www.dropbox.com/s/nyqy8tavs3pcso4/selenium-kino.ipynb?dl=0 скачать]). | ||
+ | * Практикум по управлению браузером с Selenium: пример динамической страницы ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/OEC_collect.ipynb читать], [https://www.dropbox.com/s/194hh0a1h9jqrrn/OEC_collect.ipynb?dl=0 скачать]). | ||
+ | * Ссылки для работы: [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://selenium-python.readthedocs.io/ документация] библиотеки Selenium. | ||
+ | * Практикум по управлению браузером с Selenium на примере ВКонтакте ([https://github.com/allatambov/WebScrape23/blob/main/psy-practice06-solutions.ipynb читать], [https://www.dropbox.com/s/iog89xvy3kiwpzk/psy-practice06-solutions.ipynb?dl=0 ipynb]). | ||
+ | * Практикум по управлению браузером с Selenium: XPATH и скачивание файлов ([https://github.com/allatambov/WebScrape23/blob/main/psy-practice08-solutions.ipynb читать], [https://www.dropbox.com/s/tm0k4tdg4e23iyo/psy-practice08-solutions.ipynb?dl=0 скачать]). | ||
+ | * Практикум по управлению браузером с Selenium на примере Twitter: TBA | ||
+ | |||
+ | ===Занятие 10. Библиотека pandas, приложения Streamlit (27 апреля) === | ||
+ | |||
+ | * [https://www.dropbox.com/s/prj5p6atlbeiclh/CLASS10.mp4?dl=0 Видеозапись] занятия. | ||
+ | * Базовые операции с датафреймами pandas ([читать], [https://www.dropbox.com/s/5hjbc0ydffx2re9/pandas-intro.ipynb?dl=0 ipynb]), файл [https://www.dropbox.com/s/yoyqsrwcedf196s/Salaries.csv?dl=0 Salaries.csv], загрузить данные можно также по [https://raw.githubusercontent.com/allatambov/PyICEF-2023/main/Salaries.csv ссылке]. | ||
+ | * [https://streamlit.io/ Проект] Streamlit: основные [https://docs.streamlit.io/library/cheatsheet функции], [https://docs.streamlit.io/library/api-reference/data данные], [https://docs.streamlit.io/library/api-reference/charts графики], [https://docs.streamlit.io/library/api-reference/layout структурирование] страницы, [https://docs.streamlit.io/library/api-reference/widgets меню] для ввода. | ||
+ | * Инструкция по работе со streamlit ([https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/instruct-streamlit.ipynb читать], [https://www.dropbox.com/s/u969waqtuuhvpsl/instruct-streamlit.ipynb?dl=0 ipynb]), файл myapp.py ([https://github.com/allatambov/PyICEF-2023/blob/main/myapp.py читать], [https://www.dropbox.com/s/m3q02boidf1w9i9/myapp.py?dl=0 скачать]), более интересная [https://allatambov-steamlit-salaries-myapp-upd-4zgu9x.streamlit.app/ версия] приложения. | ||
+ | * [https://carpentries-incubator.github.io/python-interactive-data-visualizations/08-publish-your-app/index.html Инструкция] по публикации приложения (сначала создать аккаунт и репозиторий на Github). | ||
== Домашние задания == | == Домашние задания == | ||
* Домашние задания сдаются через систему [http://python.math-hse.info/admin/login/?next=%2F python.math-info], [https://www.dropbox.com/s/5o3id5s0hrmi6zt/system-intro.mp4?dl=0 видео-инструкция] по работе с системой. | * Домашние задания сдаются через систему [http://python.math-hse.info/admin/login/?next=%2F python.math-info], [https://www.dropbox.com/s/5o3id5s0hrmi6zt/system-intro.mp4?dl=0 видео-инструкция] по работе с системой. | ||
+ | * Домашнее задание №8 бонусное, необязательное, его можно сдать, если хочется повысить оценку за домашние задания. Если вы не сдаете ДЗ№8, оценка считается как среднее по семи обязательным заданиям. Если сдаете ДЗ№8, оценку за него можно перенести на любое несданное задание или задание с самой низкой оценкой. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 63: | Строка 143: | ||
| [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef23/icef-hw01/icef-hw01.ipynb Домашнее задание 1] || 27.02 23:59 | | [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef23/icef-hw01/icef-hw01.ipynb Домашнее задание 1] || 27.02 23:59 | ||
|- | |- | ||
− | | Домашнее задание 2 || | + | | [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef23/icef-hw02/icef-hw02.ipynb Домашнее задание 2] || 09.03 23:59 |
|- | |- | ||
− | | Домашнее задание 3 || | + | | [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef23/icef-hw03/icef-hw03.ipynb Домашнее задание 3] || 16.03 23:59 |
|- | |- | ||
− | | Домашнее задание 4 || | + | | [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef23/icef-hw04/icef-hw04.ipynb Домашнее задание 4], [https://www.dropbox.com/s/ocj71ro3ln48iaj/pesem.txt?dl=0 pesem.txt]|| 05.04 23:59 |
|- | |- | ||
− | | Домашнее задание 5 || | + | | [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef23/icef-hw05/icef-hw05.ipynb Домашнее задание 5] || 12.04 23:59 |
|- | |- | ||
− | | Домашнее задание 6 || | + | | [https://nbviewer.org/github/allatambov/PyICEF-2023/blob/main/icef-hw06.ipynb Домашнее задание 6], файл [https://www.dropbox.com/s/opliav0yc57tbnl/icef-hw06.ipynb?dl=0 ipynb] || 20.04 23:59 |
|- | |- | ||
− | | Домашнее задание 7 || | + | | [https://nbviewer.org/url/python.math-hse.info/static/assignments_release/pyicef23/icef-hw07/icef-hw07.ipynb Домашнее задание 7], файл [https://www.dropbox.com/s/2ra64n5doihtw23/polit.csv?dl=0 polit.csv] || 04.05 23:59 |
|- | |- | ||
− | | Домашнее задание 8 || | + | | [https://github.com/allatambov/PyICEF-2023/blob/main/pyicef-hw08.ipynb Домашнее задание 8*], файл [https://www.dropbox.com/s/wfmx1zspnpl2sqf/pyicef-hw08.ipynb?dl=0 ipynb] || 15.05 23:59 |
|- | |- | ||
|} | |} | ||
+ | |||
+ | == Проект == | ||
+ | |||
+ | * Описание проекта и критерии оценивания ([https://allatambov.github.io/icef/icef-project.pdf файл]). | ||
+ | * Дедлайн: 19 мая 23:59. | ||
+ | * Проект может быть выполнен как на русском, так и на английском языке, индивидуально или в группах не более 3 человек. | ||
+ | * Чтобы получить высокие баллы за проект (оценки 9-10), в проекте необходимо использовать продвинутые инструменты/библиотеки, не обсуждаемые подробно в рамках курса. |
Текущая версия на 01:30, 6 мая 2023
Это страница факультатива «Python для сбора и анализа данных», читаемого в МИЭФ в 2022/2023 учебном году.
Авторы курса: Щуров Илья Валерьевич, Тамбовцева Алла Андреевна.
Лекции и семинары ведет: Тамбовцева Алла Андреевна.
Содержание
- 1 Правила игры
- 2 Программное обеспечение
- 3 Материалы занятий
- 3.1 Занятие 00. Презентация факультатива и знакомство с Jupyter Notebook (1 февраля)
- 3.2 Занятие 01. Вычисления и переменные. Типы данных. Ввод и вывод. (14 и 16 февраля)
- 3.3 Занятие 02. Списки и цикл for. Методы .split() и .join() (21 и 27 февраля)
- 3.4 Занятие 03. Методы на строках. Чтение и запись txt-файлов. (28 февраля и 2 марта)
- 3.5 Занятие 04. Условные конструкции и цикл while. (7 и 9 марта)
- 3.6 Занятие 05. Множества и словари. Знакомство с API (14 и 16 марта)
- 3.7 Занятие 06. Функции. Массивы и датафреймы pandas (21 и 23 марта)
- 3.8 Занятие 07. Введение в HTML. Парсинг с BeautifulSoup (3 и 5 апреля)
- 3.9 Занятие 08. Примеры парсинга с BeautifulSoup и Pandas (11 и 13 апреля)
- 3.10 Занятие 09. Примеры парсинга с Selenium (20 апреля)
- 3.11 Занятие 10. Библиотека pandas, приложения Streamlit (27 апреля)
- 4 Домашние задания
- 5 Проект
Правила игры
- Формула оценки: 0.4 * ДЗ + 0.2 * Тест + 0.4 * Проект.
- Сдача домашних заданий с опозданием допускается, но со штрафом: за задержку в пределах часа – 15% от полученной оценки, в пределах суток – 30%, в пределах двух дней – 50%.
Программное обеспечение
Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). Но в долгосрочной перспективе предпочтительнее установить Anaconda.
Материалы занятий
Занятие 00. Презентация факультатива и знакомство с Jupyter Notebook (1 февраля)
- Презентация факультатива: слайды, видео.
- Инструкция по работе с Jupyter Notebook. Jupyter Notebook и Markdown (читать, ipynb).
Дополнительно:
- Markdown и Jupyter: больше про Markdown, интерактивные виджеты в Jupyter.
- LaTeX: ShareLaTeX для желающих, документация на английском, материалы других курсов по LaTeX.
Занятие 01. Вычисления и переменные. Типы данных. Ввод и вывод. (14 и 16 февраля)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Вычисления и переменные в Python (читать, ipynb).
- Типы переменных, ввод и вывод в Python. Форматирование строк (читать, ipynb).
- Практикум 1 (читать, ipynb), решения задач (читать, ipynb).
- Интерактивные виджеты в Jupyter Notebook: документация ipywidgets.
Дополнительно:
- Вычисления с заданной точностью с модулем 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 февраля)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Списки и цикл for (читать, ipynb). Методы .split() и .join() (читать, ipynb).
- Практикум 2 (читать, ipynb), решения задач (читать, ipynb).
Дополнительно:
- Pythontutor: визуализатор кода.
- Pythontutor: списки, цикл for.
Занятие 03. Методы на строках. Чтение и запись txt-файлов. (28 февраля и 2 марта)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Альтернативы циклу for (читать, ipynb). Кортежи и функция zip() (читать, ipynb).
- Методы на строках (читать, ipynb). Чтение и запись txt-файлов (читать, ipynb), файл intro.txt.
- Практикум 3 (читать, ipynb), решения задач (читать, ipynb).
Дополнительно:
- Документация библиотеки pymorphy2 (морфологический анализатор).
- Тьюториал по построению облака слов с библиотекой wordcloud.
- Библиотека dostoevsky для анализа тональности текстов.
Занятие 04. Условные конструкции и цикл while. (7 и 9 марта)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Логические выражения и условные конструкции (читать, ipynb). Цикл while (читать, ipynb).
- Практикум 4 (читать, ipynb), файл ducks.txt, решения задач (читать, ipynb).
Занятие 05. Множества и словари. Знакомство с API (14 и 16 марта)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Множества (читать, ipynb). Словари (читать, ipynb).
- Инструкция по получению доступа к API ВКонтакте.
- Практикум 5 (читать, ipynb), решения задач (читать, ipynb).
Занятие 06. Функции. Массивы и датафреймы pandas (21 и 23 марта)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Функции: полная лекция Щурова И.В., краткий конспект нашей лекции (читать, ipynb).
- Lambda-функции (читать, ipynb).
- Практикум 6 (читать, ipynb), решения практикума (читать, ipynb).
- Массивы и датафреймы pandas (читать, скачать).
Дополнительно:
- Pythontutor: функции
- Создание модулей и библиотек в Python: документация
Занятие 07. Введение в HTML. Парсинг с BeautifulSoup (3 и 5 апреля)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Знакомство с HTML (слайды).
- Практикум по парсингу HTML с BeautifulSoup (читать, ipynb), решения (читать, ipynb).
Дополнительно:
- Тьюториал по HTML от W3schools.
- Сайт codepen.io для фронт-энд разработчиков.
Занятие 08. Примеры парсинга с BeautifulSoup и Pandas (11 и 13 апреля)
- Видеозапись занятия, сырые ipynb-файлы с занятия.
- Практикум по сбору информации в «псевдотабличном» виде (читать, ipynb).
- Обработка таблиц внутри HTML с BeautifulSoup и pandas (читать, ipynb).
Занятие 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, загрузить данные можно также по ссылке.
- Проект 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), в проекте необходимо использовать продвинутые инструменты/библиотеки, не обсуждаемые подробно в рамках курса.