Предварительная обработка данных с помощью библиотеки Pandas
Функциональные возможности Pandas для очистки и преобразования данных о продажах компании, содержащих дубликаты строк, неправильные типы данных, пропуски и отрицательные значения в форму, пригодную для дальнейшего анализа. Загрузка данных в библиотеку.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 11.12.2023 |
Размер файла | 1,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Предварительная обработка данных с помощью библиотеки Pandas
В современном мире большинство бизнес-процессов связаны с обработкой больших объемов данных, получаемых от различных источников. Часто эти данные содержат ошибки, дубликаты и пропуски, что может привести к неверным выводам и решениям. Одним из инструментов, которые позволяют очистить и преобразовать данные, является библиотека pandas для языка программирования Python.
Я собираюсь рассмотреть задачу по очистке данных с помощью pandas. Для этого возьмем данные, содержащие дубликаты строк, неправильные типы данных, пропуски и отрицательные значения. Затем я буду использовать функциональные возможности pandas для очистки и преобразования этих данных в форму, пригодную для дальнейшего анализа.
Предположим, у вас есть набор данных, содержащий информацию о продажах компании за последние несколько лет. Но данные не очень чистые, и вы заметили, что есть некоторые проблемы с форматированием и некоторые строки содержат ошибки.
Задача: Необходимо очистить данные о продажах компании за последние несколько лет с помощью библиотеки Pandas.
Исходные данные:
· Файл CSV, содержащий информацию о продажах компании за последние несколько лет.
· Файл содержит следующие столбцы: дата продажи, название продукта, количество проданного товара, цена за единицу, общая стоимость продажи, имя продавца и регион продажи.
· В некоторых строках присутствуют ошибки, например, неправильный формат даты или отсутствие цены за единицу.
Задачи, которые необходимо выполнить:
· Загрузить исходные данные из файла в Pandas DataFrame.
· Удалить строки, которые содержат ошибки в данных.
· Привести столбец с датами к формату datetime.
· Привести столбцы с числами к числовому формату (float или int).
· Определить и удалить дубликаты строк.
· Сохранить очищенные данные в новый файл CSV.
Описание столбцов:
· date - дата продажи, в формате "YYYY-MM-DD";
· product_name - название продукта
· quantity - количество продукта
· unit_price - цена за единицу продукта
· total_price - общая стоимость продукта, равная произведению количества и цены за единицу
· seller_name - имя продавца
· region - регион продажи
Загрузка данных
Чтобы загрузить данные в pandas, можно использовать метод read_csv() для загрузки данных из файла CSV или read_excel() для загрузки данных из файла Excel. В нашем случае у нас csv файл.
Импортируем необходимые библиотеки и загружаем данные.
import pandas as pd
import re
df = pd.read_csv('data_with_errors.csv')
Выводим наш DataFrame.
df.head(5)
На первый взгляд в данных видно наличие отрицательных значений и пропусков. Однако, в нашем задании сказано, что после загрузки мы должны удалить строки, в которых есть ошибки. Мы поступим немного по-другому. Сначала мы проверим типы столбцов, и если обнаружится, что какие-то столбцы не соответствуют данным, которые в них находятся, мы изменим тип на соответствующий. При возникновении проблем в ходе выполнения этой задачи, мы будем исправлять то, что будет необходимо.
Рис. 1
Обработка данных
Для начала посмотрим на то, какие типы имеют наши столбцы. Для этого нам поможет команда info().
df.info()
Мы получаем информацию о нашем DataFrame, которая говорит нам о наличии пропусков в столбце total_price. Также мы видим, что столбец с датами имеет строковый тип, также как и столбцы quantity и unit_price, которые содержат числовые данные. Нам необходимо это исправить.
Попробуем сразу привести столбец date к типу datetime. Для этого нам понадобится следующий код:
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
К сожалению, этот код не сработает, так как в столбце с данными присутствуют значения, которые не позволяют сразу привести столбец к нужному нам типу. В результате работы выражения будет выведено сообщение об ошибке.
Рис. 2
Рис. 3
Существует множество способов решения данной проблемы, один из них представлен ниже. Так как даты в нашем столбце date указаны в формате "YYYY-MM-DD", мы можем использовать регулярное выражение для поиска всех значений столбца, которые не соответствуют данному формату. Для этого мы создадим лямбда-функцию, которая будет применена к столбцу методом map(). Регулярное выражение будет выглядеть следующим образом: `\d{4}-\d{2}-\d{2}`.
Создаем лямбда-функцию.
search = lambda x: x if re.search(r"\d{4}-\d{2}-\d{2}", x) else 'not found'
Применяем лямбда-функцию к столбцу date.
df['date'] = df['date'].map(search)
Проверим результат.
df.query('date == "not found"').count()
Мы видим, что в 53 строках данные не соответствуют формату..
Рис. 4
Посмотрим на эти строки, чтобы понять, с чем мы имеем дело.
df.query('date == "not found"').head(5)
Мы замечаем отсутствие даты, а также латинские буквы вместо чисел в столбце количества quantity. Кроме того, столбец total_price содержит множество пропусков, а unit_price имеет много повторяющихся значений. В таком виде данные не представляют ценности для анализа, и мы должны удалить строки, содержащие ошибки, как указано в задании.
df = df.drop(df.query('date == "not found"').index)
df.query('date == "not found"').count()
Рис. 5
Рис. 6
Приведем столбец date к нужному нам типу данных.
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
df.info()
Видим что столбец date теперь имеет тип datetime.
Рис. 7
Для того чтобы привести столбец quantity к числовому формату, мы можем использовать метод to_numeric() с параметром errors='coerce', который преобразует значения в числа, а нечисловые значения заменяет на NaN.
df['quantity'] = pd.to_numeric(df['quantity'], errors='coerce')
Тоже самое мы делаем с unit_price.
df['unit_price'] = pd.to_numeric(df['unit_price'], errors='coerce')
Для продолжения, мы сфокусируемся на отрицательных значениях в указанных столбцах и выведем их на экран.
df.query('quantity < 0')
Эти значения будут преобразованы с помощью функции abc(), чтобы преобразовать отрицательные значения в столбцах. Это позволит получить абсолютные значения и избавиться от знака минус.
df.loc[df['quantity'] < 0,'quantity'] = abs(df['quantity'])
Рис. 8
Таким же образом мы поступим unit_price.
df.query('unit_price < 0')
Рис. 9
pandas библиотека дубликат очистка
Заменяем отрицательные значения на положительные.
df.loc[df['unit_price'] < 0,'unit_price'] = abs(df['unit_price'])
Обработаем столбец total_price. В задаче указано, что total_price представляет собой общую стоимость продукта, которая равна произведению количества и цены за единицу. Значит, мы можем заполнить пустые значения в этом столбце, умножив значение quantity на значение unit_price. Так и поступим.
df.loc[df['total_price'].isna(), 'total_price'] = df['quantity'] * df['unit_price']
Данные содержат некоторое количество дубликатов, которые необходимо удалить в соответствии с заданием.
df[df.duplicated()]
Рис. 10
Удаляем дубликаты.
df = df.drop(df[df.duplicated()].index)
Проверим категориальные переменные.
df.product_name.unique()
df.seller_name.unique()
df.region.unique()
Рис. 11
Все значения категориальных переменных в порядке. Осталось только сохранить данные в csv. В этом нам поможет функция to_csv().
df.to_csv('processed_data.csv',index=False, header=True)
В результате мы получим файл processed_data.csv.
Размещено на Allbest.ru
...Подобные документы
Понимание хранилища данных, его ключевые особенности. Основные типы хранилищ данных. Главные неудобства размерного подхода. Обработка информации, аналитическая обработка и добыча данных. Интерактивная аналитическая обработка данных в реальном времени.
реферат [849,7 K], добавлен 16.12.2016Хранение и обработка данных. Компоненты системы баз данных. Физическая структура данных. Создание таблиц в MS Access. Загрузка данных, запросы к базе данных. Разработка информационной системы с применением системы управления базами данных MS Access.
курсовая работа [694,0 K], добавлен 17.12.2016Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.
лекция [15,5 K], добавлен 19.08.2013Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.
реферат [57,1 K], добавлен 20.12.2010Функциональные зависимости и нормализация отношений. Ограничения целостности данных. Описание таблиц на языке SQL. Интерфейс пользователя и надёжность программ обработки данных. Обработка данных с помощью запросов. Работа с данными из внешних источников.
дипломная работа [1,6 M], добавлен 25.04.2015Разработка информационной системы для хранения данных для предметной области "Самолеты аэропорта". Формат хранения исходных данных, их загрузка в табличный процессор. Тестирование программного комплекса. Возможности пакета MS Excel по обработке данных.
курсовая работа [1,2 M], добавлен 23.04.2014Системы управления базами данных в медицине. Основные идеи, которые лежат в основе концепции базы данных. Требования, предъявляемые к базам данных и системе управления базами данных. Архитектура информационной системы, организованной с помощью базы данных
реферат [122,5 K], добавлен 11.01.2010Режимы компьютерной обработки данных. Понятие и типы данных, структура и отличительные особенности. Характеристика основных операций, проводимых с данными, приемы их кодирования. Порядок и инструменты измерения информации и единицы хранения данных.
контрольная работа [104,1 K], добавлен 22.11.2010Определение многомерной модели данных для удовлетворения основных информационных потребностей предприятия. Экстракция, загрузка и перенос данных из различных источников данных. Разработка собственных ETL–систем. Оптимизация работы хранилища данных.
презентация [9,1 M], добавлен 25.09.2013Краткая характеристика, главные преимущества и область применения MS Access. Базы данных и системы управления базами данных. Описание пошагового создания базы данных, таблиц, форм, запроса и отчета. Особенности и функциональные возможности MS Access.
курсовая работа [3,4 M], добавлен 23.09.2010Сущность и функциональные особенности баз данных, их классификация и типы, внутренняя структура и элементы. Модели данных, хранящихся в базах: иерархическая, сетевая, реляционная, многомерная, объектно-ориентированная. Виды запросов и типы таблиц.
дипломная работа [66,7 K], добавлен 06.01.2014Создание баз данных с помощью Transact-SQL. Специализированные типы данных. Обеспечение целостности ссылок. Преимущества хранимых процедур. Синтаксис запроса на создания триггера. Фиксированные серверные роли. Предоставление прав на объекты в базе данных.
лабораторная работа [2,2 M], добавлен 12.09.2012Основы проектирования базы данных (БД). Модели, типы и функциональные возможности БД. Практическая разработка БД для горнолыжной базы. Сохранение данных в таблицах. Типы запросов как средства выбора необходимой информации. Создание отчетов и макросов.
курсовая работа [53,3 K], добавлен 12.06.2014Концепции хранилищ данных для анализа и их составляющие: интеграции и согласования данных из различных источников, разделения наборов данных для систем обработки транзакций и поддержки принятия решений. Архитектура баз для хранилищ и витрины данных.
реферат [1,3 M], добавлен 25.03.2013Понятие и назначение, принципы построения и внутренняя структура системы управления базами данных, их функциональные особенности и возможности, критерии оценки эффективности. Языковые и программные средства. Использование SQL, типы и модели данных.
презентация [677,3 K], добавлен 18.03.2015Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.
курсовая работа [2,4 M], добавлен 06.02.2016Администратор источников данных ODBC: его запуск и принципы работы, возможности эксплуатации и управления. Вкладка "Пользовательское DSN", ее содержание и структура. Библиотеки для доступа к ODBC, типы используемых данных. Функция SQLAllocHandle.
презентация [485,0 K], добавлен 06.01.2014Системы автоматизированной обработки информации. Хранение большого объема информации. Понятие базы данных (БД). Обеспечение секретности данных. Уровни представления данных в БД. Логическая структура данных. Ограничения, накладываемые на данные.
реферат [65,2 K], добавлен 26.11.2011Проектирование базы данных Access. Система управления базами данных. Создание и обслуживание базы данных, обеспечение доступа к данным и их обработка. Постановка задач и целей, основных функций, выполняемых базой данных. Основные виды баз данных.
лабораторная работа [14,4 K], добавлен 16.11.2008Теоретические аспекты СУБД. Основные понятия. Функциональные возможности СУБД. Архитектура систем управления. Разработка базы данных. Крупные массивы данных размещают, как правило, отдельно от исполняемого программы, и организуют в виде базы данных.
курсовая работа [30,5 K], добавлен 23.02.2006