Сценарий урока по теме Искусственный интеллект. Инструмент для предварительной обработки данных (Pandas)
Пояснительная записка к презентации
Инструмент для предварительной обработки данных (Pandas)
(10-11 класс)
Автор: Хорошко Ирина Юрьевна, учитель информатики ГБОУ ЛНР «АИТЛ»
Пояснительная записка
Целью занятия является – познакомить учащихся с основными методами предварительной обработки данных на Pandas. Научиться на практике применять полученные знания с применением реальных данных.
Основные понятия темы: предварительная обработка данных, дубликаты, нулевые значения, запрос, ключевые методы библиотеки Pandas для предварительной обработки данны
Базовые знания и умения: знают как подключить библиотеку Pandas, как загрузить данные в DateFrame, основы работы с языком Phyton, понятие базы данных, понимают что такое метод класса и как он работает.
Результаты обучения: обучающиеся умеют загружать данные в DateFrame, умеют переносить их в базу данных, отображать на экране содержимое таблицы как полностью, так и частично, изменять названия столбцов, значения полей, удалять пустые поля, дубликаты, вносить изменения в наименование полей, создавать простейшие запросы на выборку данных.
Ход занятия
Этап занятия | Время | Деятельность педагога | Комментарии, рекомендации для педагогов |
Организационный этап | 2 мин. | Ребята, рада приветствовать вас на занятии. Проверка присутствия, подготовка рабочего места | Приветствие. Создание в классе атмосферы психологического комфорта |
Актуализация знаний | 5 минут | Ребята, мы с вами уже познакомились с новой библиотекой в Python, которая поможет нам работать с большим массивом данных. Кто вспомнит как эта библиотека называется? Ответы обучающихся: Pandas Вспомним как импортировать эту библиотеку? Ответы обучающихся:
Какие новые типы данных есть в библиотеке для работы с большим массивом данных? Ответы обучающихся: Series, DateFrame Какие способы заполнить данными DateFrame? Ответы обучающихся: Создать самостоятельно структуру и внести данные в программе, Загрузить по ссылке, Загрузить из готового локального файла на компьютере | Способствовать обсуждению |
Постановка цели и задач занятия. Мотивация учебной деятельности обучающихся | 5 мин. | Вопросы для обсуждения: С вами на прошлом занятии мы научились основами работы с Pandas, а сегодня попробуем себя в работе с реальным набором данных. Но важно помнить, что данные получаемые из разных источников не всегда пригодны для работы в своем изначальном виде, давайте взглянем с вами на такой фрагмент данных:
Мы видим 6 записей, но по факту данные дублируются, где-то данных не хватает, поэтому работа с таким набором может привести к некореектным результатам. Что нужно сделать перед началом работы? Ответы обучающихся: Необходимо провести обработку данных, если есть возможность удалить дубликаты, заполнить пропуски, возможно откорректировать некоторые записи. Этот этап, ребята называется предобработка данных. Сегодня мы научимся работать с реальными большими данными и проводить предобработку данных, для их дальнейшего использования. | Способствовать обсуждению мотивационных вопросов. Подвести обучающихся к важности рассматриваемой темы |
Изучение нового материала | 55 мин. | Для начала, хотелось бы поделиться с вами ссылками, где можно скачать реальные датасеты: https://data.unicef.org/resources/resource-type/datasets/
https://data.world/datasets/open-data
Выберем произвольный датасет, например о продаже квартир с 2001 года Производим импорт датасета, для этого вводим такие команды: Т.к. наш датасет имеет расширение csv, то метод мы будем использовать read_csv В скобочках укажем расположение датасета.
После выполнения такой команды мы можем увидеть ошибку. Т.к. реальные датасеты большие а Pandas пытается автоматически установить каждой колонке тип данных, то происходит переполнение памяти, и замедление процесса чтения данных, варианта избежать ошибки два: Автоматически самостоятельно указать тип данных, или установить атрибут set_lowmemory=False, т.е. убрать оптимизацию памяти Мы с вами получим такой DateFrame:
Все данные бывают не нужны для просмотра, поэтому можно отобразить первые несколько строк или последние для этого введем команду df.head (количество строк c начала таблицы) или df.tail (количество строк с конца таблицы)
Еще одна команда для нашего DateFrame: Info – позволяет получить общую информацию о наборе данных
Еще один метод, который можно применить к датасету: describe() – позволяет получить статистическую информацию о данных
Теперь необходимо данные изменить. Как это можно сделать? Для этого нам необходимо эти данные перенести в изменяемую таблицу, мы ее создадим самостоятельно. Это будет новая база данных. Для работы с базой данных в Python есть специальные библиотеки: sqlalchemy
Результат мы видим – записанные данные в базе данных. Теперь задача перед нами – просмотреть данные или часть данных, для этого нам понадобиться команда read_sql. Сначала укажем метод чтения из базы данных, затем наш объект таблица и также подключение к базе данных, у нас это engine
Работа с базой данных строится на запросах, и благодаря им мы можем выбирать нужные записи, столбцы или строки, вносить изменение в уже созданные записи. Давайте рассмотрим некоторые стандартные запросы, например запрос на выбор данных: Формируем его следующим образом: команда select – позволяет выбрать поля из таблицы далее идет наименование полей, или * если выбираем все поля и затем ключевое слово From - место из которого будет производиться выборка данных.
Выполняя этот запрос мы увидим все данные на экране, но если вместо * установить наименование Town - то на экране увидим только название городов Также можно произвести выборку данных по записям, например меня интересуют данные о продаже квартир в Эшворде, тогда к запросу необходимо добавить ключевое слово where, которое обозначает фильтр выбранных записей, пример:
Теперь перейдем непосредственно к проверке наших данных, первое что необходимо проверить – наличие пропусков или пустот, для этого используем команду: isnull Данная команда выведет датафрейм который состоит из значений true false. True – если пустота есть в данном значении, false-если нет.
Заполним пустоты, иcпользуем команду fillna(0) – заполним все пустоты нулями Удаление дубликатов или повторяющихся записей: drop_duplicates() Атрибуты: keep - позволяет контролировать, какие дубликаты будут удалены: первый, последний или все subset – удаление дубликатов в заданных столбцах Еще один важный момент в редактировании датафрейма: корректное название столбцов. В них не должно быть пробелов, кавычек, и прочих символов. Для того что бы просмотреть название полей, необходимо выполнить команду columns:
Обратим внимание, что названия полей идут с большой буквы, попробуем перевести их в нижний регистр, так будет удобнее с ними работать. Для этого применим метод lower. Но этот метод работает только для текстовой переменной, а названия полей – совершенно другой объект, ну никак не текстовая строка. Давайте попробуем преобразовать этот объект в текстовый формат, для этого воспользуемся методом str:
Также заменим все пробелы в названиях на нижнее подчеркивание используя стандартный метод replace:
Что бы сохранить изменения нужно перезаписать названия столбцов, для этого выполним команду:
Рассмотрим еще несколько методов для работы с данными. Возможно удаление строк или столбцов, которые содержат нулевые или пустые значения. Используем для этого метод dropna. Но в качестве параметра axis необходимо указать 1, т.к. тогда он будет удалять столбцы с пустыми значениями, если этого не сделать, то будут удаляться строки с 0 или пустыми значениями, что может привести к нежелательной потере данных:
Метод для подсчета значений в столбце, unique()
Так в этом примере мы разобрали как выбрать значения без повторений по всему столбцу town, а метод nunique() – даст их количество Для дальнейшей работы может понадобиться и такая информация как количество повторов каждого значения, например посчитаем количество повторов каждого города в датасете:
Для построения сводной таблицы нам понадобиться метод pivote_table:
| Для справки: Способствовать усвоению материала Для справки: Сайт: https://habr.com/ru/articles/727228/ |
Закрепление изученного материала | 10 мин. | Вопросы для обсуждения Для чего нам нужна библиотека Pandas? Какие основные этапы необходимо выполнить для предварительной обработки данных? | Педагог организует беседу по вопросам |
Этап подведения итогов занятия (рефлексия) | 8 мин. | Вопросы для обсуждения О чём был этот урок? Какие вопросы остались? Что осталось непонятным? | Педагог способствует размышлению обучающихся над вопросами |
Информация о домашнем задании, инструктаж по его применению | 5 мин. | Конечно же мы разобрали не все методы библиотеки Pandas, но сделали хорошую работу и подготовили данные для дальнейшей визуализации или обработки, а вашим домашним заданием будет: Попробовать изученные команды, методы на произвольном наборе данных, Дополнительная информация: https://habr.com/ru/articles/727228/ https://habr.com/ru/companies/otus/articles/797283/ |
Cписок литературы
https://habr.com/ru/articles/727228/
https://habr.com/ru/companies/otus/articles/797283/
Уэс Маккинни. Python и анализ данных: Первичная обработка данных с применением pandas, NumPy и Jupiter / пер. с англ. А. А. Слинкина. 3-е изд. – М.: МК Пресс, 2023. – 536 с.: ил













































