Предварительная обработка данных с помощью библиотеки 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.