Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LR1.Tyutterin_Yakov_Z1411-4

.pdf
Скачиваний:
0
Добавлен:
07.01.2025
Размер:
1.27 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

д-р техн. наук, профессор.

 

Т. М. Татарникова

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1

Предварительный анализ данных

по дисциплине: Введение в анализ данных

РАБОТУ ВЫПОЛНИЛ

 

 

 

 

 

СТУДЕНТ гр. №

Z1411

 

 

Я. Н. Тюттерин

 

 

 

 

 

 

 

номер группы

подпись, дата

 

инициалы, фамилия

Студенческий билет №

2022/4886

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Санкт-Петербург 2024

Лабораторная работа 1. Предварительный анализ данных

Цель работы: осуществить предварительную обработку данных csv-файла, выявить и устранить проблемы в этих данных.

Вариант 3.

Данные пользовательских сессии магазина:

1.уникальный идентификатор пользователя

2.страна пользователя

3.устройство пользователя

4.идентификатор рекламного источника, из которого пришел пользователь

5.дата и время начала сессии

6.дата и время окончания сессии

Задание 1: Группировка - device и количество рекламных источников каждого типа

(channel).

Задание 2: Группировка - device и количество рекламных источников каждого типа (channel). Создать датафрейм. Переименовать столбец с количеством в «сount». Отсортировать по убыванию столбца «count».

Задание 3: Сводная таблица ( pivot_table) - уникальное количество пользователей для каждого устройства (device). Отсортировать по убыванию количества.

Задание 4: Сводная таблица ( pivot_table) - количество пользователей для каждого устройства (device) - строки и канала - столбцы. Отсортировать по возрастанию столбца device.

Первым делом импортируем библиотеку pandas. Представлено на рисунке 1.

Рисунок 1 - Импорт библиотеки

Далее указываем путь к файлу и считываем файл в DF. После этого выводим содержимое первых 20 строк. Результат представлен на рисунках 2-3.

Рисунок 2 - Считывание файла

Рисунок 3 - Вывод первых 20 строк файла

Для получения информации по DF используем метод info. user_id - это уникальный идентификатор пользователя, который уникален для каждого отдельного пользователя. Region - это то место, откуда пользователь посетил сайт. Channel - идентификатор источника, откуда пользователь пришел на сайт. Session_start и Session_end - это соответственно время захода на сайт и время выхода(окончания сессии). Код и результат представлены на рисунках 4-5.

Рисунок 4 - Реализация

Рисунок 5 - Вывод информации

Как можно заметить, названия некоторых столбов начинаются с большой буквы, а некоторые записаны полностью заглавными буквами. Чтобы исключить путаницу - приводим названия всех столбов к нижнему регистру (рисунок 6).

Рисунок 6 - Приведение названий столбцов к нижнему регистру

Также в результате вывода df.info() было выявлено несоответствие типов значений в столбцах session_start, session_end. Выполним преобразования (рисунки 7-8).

Рисунок 7 - Преобразование к типу даты и времени

Рисунок 8 - Результат выполнения преобразования

Также, при выводе уникальных значений для столбца ‘region’ было выявлено, что присутствует значение nan, что соответствует None, отсутствующему значению. Принято решение исключить вообще все строки, где хотя бы одной колонке отсутствует значение

(Рисунки 9-10).

Рисунок 9 - Удаление строк с хотя бы одним отсутствующим значением по столбцу

Рисунок 10 - Результат удаления

Также можно было заметить, что присутствуют дубли. USA и United States означают фактически одно и то же, поэтому было принято решение привести все к значению - United States (рисунок 11)

Рисунок 11 - Реализация

Также по столбцу device были выявлены дубли, но они связаны с разным регистром. Чтобы их исключить - приводим все к нижнему (рисунок 12).

Рисунок 12 - Исключение дублей.

Также, дополнительно было проверено, что в файле отсутствуют дубликаты на основе значений во всех колонках. Такие дубли нашлись и были исключены (рисунок 13).

Рисунок 13 - Исключение дубликатов

Задание 1. Группировка - device и количество рекламных источников каждого типа

(channel). Код и результат представлены на рисунке 14:

Рисунок 14 - Результат выполнения задания 1

Задание 2: Группировка - device и количество рекламных источников каждого типа (channel). Создать датафрейм. Переименовать столбец с количеством в «с ount».

Отсортировать по убыванию столбца «count». Код и результат представлены на рисунке

15:

Рисунок 15 - Результат выполнения задания 2

Задание 3: Сводная таблица ( pivot_table) - уникальное количество пользователей для каждого устройства (device). Отсортировать по убыванию количества.

Выбрали индекс по значению device, группировка и подсчет осуществляется по значению user_id, так как оно является уникальных для каждого пользователя. В aggfunc описали лямбду, на основе которой происходит подсчет уникальных значений user_id, а затем возвращается их количество для каждого устройства. Сортировку задали как обратную. Также произвели переименование столбца, чтобы явно указать, что это количество пользователей по каждому устройству. Код и результат представлены на рисунке 16:

Рисунок 16 - Результат выполнения задания 3

Задание 4: Сводная таблица ( pivot_table) - количество пользователей для каждого устройства (device) - строки и канала - столбцы. Отсортировать по возрастанию столбца device. В качестве строк выбираем device, а в качестве столбцов - channel. Производим аналогичный подсчет уникальных значений по значению user_id и на основе агрегирующий функции - aggfunc. В конце производим сортировку по значению столбца device по возрастанию (A-Z). Результат представлен на рисунке 17:

Рисунок 17 - Результат выполнения задания 4

Весь код задания выложен на GitHub: https://github.com/TyutterinYakov/Lab1

Вывод

В результате проделанной работы я познакомился с такой библиотекой для языка Python как Pandas, который помогает подготовить и провести первичный анализ данных, чтобы потом использовать их в машинном или глубоком обучении. Библиотека поддерживает основные статистические методы, которые необходимы для работы с данными. Например, расчёт средних значений, их распределения по квантилям и т.д. Познакомился с такими ее возможностями как работа с заголовками, индексация, сводные таблицы в связке с различными видами группировок и агрегирующих функций.

Также было выявлено то, что более частыми посетителями платформы, к которой относятся предоставленные данные - являются пользователи устройств компании Apple. А самой популярным каналом является organic.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]