Сценарий урока по теме Искусственный интеллект. Инструмент для предварительной обработки данных (Pandas)

1
0
Материал опубликован 12 September

Пояснительная записка к презентации


Сценарий урока по теме

Инструмент для предварительной обработки данных (Pandas)

(10-11 класс)









Автор: Хорошко Ирина Юрьевна, учитель информатики ГБОУ ЛНР «АИТЛ»












Пояснительная записка



Целью занятия является – познакомить учащихся с основными методами предварительной обработки данных на Pandas. Научиться на практике применять полученные знания с применением реальных данных.

Основные понятия темы: предварительная обработка данных, дубликаты, нулевые значения, запрос, ключевые методы библиотеки Pandas для предварительной обработки данны

Базовые знания и умения: знают как подключить библиотеку Pandas, как загрузить данные в DateFrame, основы работы с языком Phyton, понятие базы данных, понимают что такое метод класса и как он работает.

Результаты обучения: обучающиеся умеют загружать данные в DateFrame, умеют переносить их в базу данных, отображать на экране содержимое таблицы как полностью, так и частично, изменять названия столбцов, значения полей, удалять пустые поля, дубликаты, вносить изменения в наименование полей, создавать простейшие запросы на выборку данных.






Ход занятия



Этап занятия

Время

Деятельность педагога

Комментарии, рекомендации для педагогов

Организационный этап

2 мин.

Ребята, рада приветствовать вас на занятии. Проверка присутствия, подготовка рабочего места


Приветствие. Создание в классе атмосферы психологического комфорта

Актуализация знаний

5 минут

Ребята, мы с вами уже познакомились с новой библиотекой в Python, которая поможет нам работать с большим массивом данных. Кто вспомнит как эта библиотека называется?

Ответы обучающихся: Pandas

Вспомним как импортировать эту библиотеку?

Ответы обучающихся:

t1757688290aa.png

Какие новые типы данных есть в библиотеке для работы с большим массивом данных?

Ответы обучающихся: Series, DateFrame

Какие способы заполнить данными DateFrame?

Ответы обучающихся: Создать самостоятельно структуру и внести данные в программе, Загрузить по ссылке, Загрузить из готового локального файла на компьютере

Способствовать обсуждению

Постановка цели и задач занятия. Мотивация учебной деятельности обучающихся

5 мин.

Вопросы для обсуждения:

С вами на прошлом занятии мы научились основами работы с Pandas, а сегодня попробуем себя в работе с реальным набором данных. Но важно помнить, что данные получаемые из разных источников не всегда пригодны для работы в своем изначальном виде, давайте взглянем с вами на такой фрагмент данных:

t1757688290ab.png

Мы видим 6 записей, но по факту данные дублируются, где-то данных не хватает, поэтому работа с таким набором может привести к некореектным результатам. Что нужно сделать перед началом работы?

Ответы обучающихся: Необходимо провести обработку данных, если есть возможность удалить дубликаты, заполнить пропуски, возможно откорректировать некоторые записи.

Этот этап, ребята называется предобработка данных. Сегодня мы научимся работать с реальными большими данными и проводить предобработку данных, для их дальнейшего использования.

Способствовать обсуждению мотивационных вопросов. Подвести обучающихся к важности рассматриваемой темы

Изучение нового материала

55 мин.

Для начала, хотелось бы поделиться с вами ссылками, где можно скачать реальные датасеты:

https://data.unicef.org/resources/resource-type/datasets/

t1757688290ac.png

https://data.world/datasets/open-data

t1757688290ad.png

t1757688290ae.png

Выберем произвольный датасет, например о продаже квартир с 2001 года

Производим импорт датасета, для этого вводим такие команды:

Т.к. наш датасет имеет расширение csv, то метод мы будем использовать read_csv В скобочках укажем расположение датасета.

t1757688290af.png

После выполнения такой команды мы можем увидеть ошибку. Т.к. реальные датасеты большие а Pandas пытается автоматически установить каждой колонке тип данных, то происходит переполнение памяти, и замедление процесса чтения данных, варианта избежать ошибки два: Автоматически самостоятельно указать тип данных, или установить атрибут set_lowmemory=False, т.е. убрать оптимизацию памяти

Мы с вами получим такой DateFrame:

t1757688290ag.png

Все данные бывают не нужны для просмотра, поэтому можно отобразить первые несколько строк или последние для этого введем команду df.head (количество строк c начала таблицы) или df.tail (количество строк с конца таблицы)

t1757688290ah.png

Еще одна команда для нашего DateFrame: Info – позволяет получить общую информацию о наборе данных

t1757688290ai.png

Еще один метод, который можно применить к датасету: describe() – позволяет получить статистическую информацию о данных

t1757688290aj.png

Теперь необходимо данные изменить. Как это можно сделать? Для этого нам необходимо эти данные перенести в изменяемую таблицу, мы ее создадим самостоятельно. Это будет новая база данных. Для работы с базой данных в Python есть специальные библиотеки: sqlalchemy

t1757688290ak.png

Результат мы видим – записанные данные в базе данных. Теперь задача перед нами – просмотреть данные или часть данных, для этого нам понадобиться команда read_sql. Сначала укажем метод чтения из базы данных, затем наш объект таблица и также подключение к базе данных, у нас это engine

t1757688290al.png

Работа с базой данных строится на запросах, и благодаря им мы можем выбирать нужные записи, столбцы или строки, вносить изменение в уже созданные записи.

Давайте рассмотрим некоторые стандартные запросы, например запрос на выбор данных:

Формируем его следующим образом: команда select – позволяет выбрать поля из таблицы далее идет наименование полей, или * если выбираем все поля и затем ключевое слово From - место из которого будет производиться выборка данных.

t1757688290am.png

Выполняя этот запрос мы увидим все данные на экране, но если вместо * установить наименование Town - то на экране увидим только название городов

Также можно произвести выборку данных по записям, например меня интересуют данные о продаже квартир в Эшворде, тогда к запросу необходимо добавить ключевое слово where, которое обозначает фильтр выбранных записей, пример:

t1757688290an.png

Теперь перейдем непосредственно к проверке наших данных, первое что необходимо проверить – наличие пропусков или пустот, для этого используем команду: isnull

Данная команда выведет датафрейм который состоит из значений true false. True – если пустота есть в данном значении, false-если нет.

t1757688290ao.png

Заполним пустоты, иcпользуем команду fillna(0) – заполним все пустоты нулями

Удаление дубликатов или повторяющихся записей: drop_duplicates()

Атрибуты:

keep - позволяет контролировать, какие дубликаты будут удалены: первый, последний или все

subset – удаление дубликатов в заданных столбцах



Еще один важный момент в редактировании датафрейма: корректное название столбцов. В них не должно быть пробелов, кавычек, и прочих символов. Для того что бы просмотреть название полей, необходимо выполнить команду columns:

t1757688290ap.png

Обратим внимание, что названия полей идут с большой буквы, попробуем перевести их в нижний регистр, так будет удобнее с ними работать. Для этого применим метод lower. Но этот метод работает только для текстовой переменной, а названия полей – совершенно другой объект, ну никак не текстовая строка. Давайте попробуем преобразовать этот объект в текстовый формат, для этого воспользуемся методом str:

t1757688290aq.png

Также заменим все пробелы в названиях на нижнее подчеркивание используя стандартный метод replace:

t1757688290ar.png

Что бы сохранить изменения нужно перезаписать названия столбцов, для этого выполним команду:

t1757688290as.png

Рассмотрим еще несколько методов для работы с данными. Возможно удаление строк или столбцов, которые содержат нулевые или пустые значения. Используем для этого метод dropna. Но в качестве параметра axis необходимо указать 1, т.к. тогда он будет удалять столбцы с пустыми значениями, если этого не сделать, то будут удаляться строки с 0 или пустыми значениями, что может привести к нежелательной потере данных:

t1757688290at.png

Метод для подсчета значений в столбце, unique()

t1757688290au.png

Так в этом примере мы разобрали как выбрать значения без повторений по всему столбцу town, а метод nunique() – даст их количество

Для дальнейшей работы может понадобиться и такая информация как количество повторов каждого значения, например посчитаем количество повторов каждого города в датасете:

t1757688290av.png

t1757688290aw.png

Для построения сводной таблицы нам понадобиться метод pivote_table:

t1757688290ax.png

Для справки:

Способствовать усвоению материала











































































































































































































































































































































































Для справки:

Сайт: 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 с.: ил




Предварительный просмотр презентации

Инструмент для предварительной обработки данных (Pandas) Автор: Хорошко И.Ю. Учитель информатики ГБОУ ЛНР «АИТЛ»

Повторим… Библиотека, которая необходима для работы с большим набором данных? Pandas 2) Как подключить эту библиотеку? 3) Какие типы данных есть в библиотеке для работы с большим массивом данных? Series, DateFrame 4) Какие способы заполнить данными DateFrame?

Рассмотрим набор данных

Предварительная обработка данных Тема урока:

Где взять данные? Https://data.unicef.org/resources/resource-type/datasets/

Где взять данные? https://data.world/datasets/open-data

Выбор данных Продажа квартир с 2001 по 2020 года

Импорт данных:

Просмотр данных

Просмотр выбранной части данных

Информация о данных

Статистическая информация о датасет

Создание таблицы базы данных engine = create_engine("sqlite://")

Вывод таблицы

Работа с запросами Town

Проверка нулевых значений

Удаление дубликатов: drop_duplicates() Атрибуты: keep - позволяет контролировать, какие дубликаты будут удалены: первый, последний или все subset – удаление дубликатов в заданных столбцах

Изменяем название столбцов

Запись в одну строку

Удаление пустот

Некоторые полезные методы

Подведем итоги: Для чего нам нужна библиотека Pandas? Какие основные этапы необходимо выполнить для предварительной обработки данных? Какие методы запомнились?

в формате Microsoft Word (.doc / .docx)
в формате MS Powerpoint (.ppt / .pptx)
Комментарии
Комментариев пока нет.