Python для сбора и анализа данных КНАД 22/23

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Записи занятий

https://disk.yandex.ru/d/jWp8yYwALIy8AQ

Вики-страница прошлого года

Вики-страница курса "Программирование на Python", 1 модуль

Лекции

Вторник 13:00 – 14:20, zoom

1. 10 января Модуль numpy. Основные операции для работы с numpy.array. презентация colab

2. 17 января Модуль pandas. series и работа с одним датафреймом colab, первый пункт

3. 24 января Вопросы производительности. GIL. Работа в Pandas с несколькими таблицами презентация colab colab performance

4. 31 января Визуализация данных в Python magic в jupyter matplotlib1 matplotlib2 pandas_plot plotly seaborn

5. 7 февраля Общее представление о MapReduce задачах, экосистеме Hadoop, HDFS презентация

6. 14 февраля Представление о реляционных базах данных. Основы языка SQL. Работа с таблицами в MySQL. презентация источник вдохновения скрипт для создания БД для MySQL

7. 21 февраля Spark презентация техносферы

8. 28 февраля YARN презентация, Hbase презентация

9. 7 марта Написание веб-приложения на Flask код

10. 24 марта Базы данных: индексы, ограничения, представления, транзакции, ACID презентация код

Семинары

Пятница 13:00 – 14:20, zoom 222 (Денис) zoom 221 (Михаил)

GitHub 222 группы (Денис)

1. 13 января Продолжение лекции по numpy colab

2. 20 января Решение задач на numpy упражнения отсюда начиная с 9го

3. 27 января Решение задач на pandas. Решение задач на применение функций к датафреймам, работу с несколькими датафреймами. Сравнение производительности операций задачи

4. 3 февраля Практика построения визуализаций с помощью matplotlib задачи

5. 10 февраля Практика построения визуализаций с помощью plotly. Знакомство с mrjob tasks code

6. 17 февраля Практика работы с SQL архив с заданием, источник архива (если авторские права, все дела) online editor

7-8. 3, 10 марта Решение задач на pySpark tasks colab Сравнение RDD и DataFrame

9. 17 марта Миграции в базах данных, redis как пример NoSQL базы данных.

10. 24 марта Оконные функции в SQL и pyspark.

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

Сдача задач проводится в anytask, инвайты в закреплённом сообщении телеграм чата. Максимум за одно дз – 10 баллов, по решению проверяющего могут быть добавлены бонусные баллы за изящные решения. Указанный в anytask максимальный балл – чисто формальное ограничение, оно больше, чем наш максимум, ибо в него входят бонусные баллы.

Ваше задание может быть проверено и возвращено на доработку на усмотрение преподавателя.

1. numpy. Дедлайн 24.01.2023 10:30. Максимум без учёта бонусов – 10 баллов

2. pandas. Дедлайн 31.01.2023 10:30. Максимум без учёта бонусов – 10 баллов

3. join. Дедлайн 09.02.2023 10:30. Максимум без учёта бонусов – 10 баллов

4. visualization. Дедлайн 17.02.2023 13:00. Максимум без учёта бонусов – 10 баллов

5. sql. Дедлайн 28.02.2023 11:00. Максимум без учёта бонусов – 10 баллов

6. spark. Дедлайн 28.03.2023 12:00. Максимум без учёта бонусов – 10 баллов

ПРОЕКТ [бонус]. Написать на flask/django/любом другом python-фреймворке интернет магазин телефонов с использованием базы данных, с представлением товаров на странице в виде иконок и подробной карточкой для каждого товара (по образу и подобию лекции). Подумайте, какие характеристики товара нужно указывать. За корректную красивую реализацию с подходящим шаблоном и набором действий максимум можно получить 7 баллов. Реализуйте функционал сравнения телефонов, чтобы при этом было понятно, значение характеристики какого телефона лучше – максимум 3 балла. Проверьте, что если сузить окно браузера, то всё будет работать и сравнение не разъедется. В качестве данных достаточно 5-10 объявлений с картинками. Дедлайн 29.03.2023 23:59. Итого максимум без учёта бонусов – 10 баллов. Интересные идеи будут поощряться дополнительными баллами.

Оценивание

Накоп = МИНИМУМ((ДЗ1 + ДЗ2 + ДЗ3 + ДЗ4 + ДЗ5 + ДЗ6 + Пр) / 6, 10)

Итог = 0.7 * Накоп + 0.3 * экз

Автомат = Накоп если Накоп >= 6 и есть желание получить автомат

Рекомендуемая основная литература

1. Python для анализа данных – курс от МФТИ и Mail.Ru Group

2. Hadoop. Система для обработки больших объемов данных

3. Основы SQL – курс Андрея Созыкина

4. Курс Техносферы Методы распределенной обработки больших объемов данных в Hadoop

5. https://numpy.org/, https://pandas.pydata.org/, https://matplotlib.org/

Рекомендуемая дополнительная литература

1. https://mrjob.readthedocs.io/en/latest/

2. Devpractice Team. Python. Визуализация данных. Matplotlib. Seaborn. Mayavi.

3. https://vk.com/itcookies/python

4. О функции apply в pandas