Использование SQL для очистки необработанных данных

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

При этом SQL в основном используется для написания запросов, которые извлекают данные и помогают получить понимание.

Для очистки данных люди более склонны полагаться на такие языки, как Python и R, которые предлагают множество пакетов, обеспечивающих простую и удобную предварительную обработку данных. С помощью этих пакетов можно выполнять сложные задачи с минимальными строками кода.

Напротив, выполнение тех же задач с SQL может оказаться обременительным из-за его синтаксиса. Однако, несмотря на преимущества обработки данных с помощью Python / R, стоит знать, как использовать SQL в качестве инструмента очистки данных. В конце концов, использование пакетов Python и R для больших наборов данных создает дополнительные сложности и может вызвать проблемы.

SQL может не поставляться со своим собственным набором удобных пакетов, но он обладает средствами для проведения простой очистки данных. Знание основных команд может избавить вас от необходимости использовать дополнительный инструмент только для небольшой очистки данных перед использованием SQL для выполнения запросов.

Хотя большая часть вашего времени с SQL будет потрачена на написание запросов с «SELECT» и «FROM» для фильтрации, агрегирования и объединения данных, время от времени вы можете столкнуться с ситуациями, которые потребуют от вас постоянного изменения таблицы.

Таким образом, будет полезно знать, как применять основные инструменты очистки данных в SQL, чтобы избавить себя от некоторых проблем при работе с необработанными данными.

Пример использования

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

Примечание. Следующий код написан на Microsoft SQL Server. По этой причине синтаксис SQL может немного отличаться от наиболее знакомого вам.

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

Во-первых, давайте сделаем предварительный просмотр данных, чтобы увидеть, с чем нам нужно работать:

Как вы понимаете, предусмотрено множество функций, включая дату, место и животное, участвовавшее в инциденте укуса. Набор данных также состоит из нерелевантных функций и пропущенных значений.

Давайте выполним простую обработку данных, чтобы было легко писать запросы и извлекать необходимую информацию из набора данных.

Удалить нежелательные функции

Мы можем начать с рассмотрения нежелательных функций. Предположим, мы планируем провести EDA с данными или построить временной ряд случаев укусов животных. Если нас интересует только анализ самих случаев укусов, мы можем опустить особенности, связанные с последствиями укусов. Мы также можем удалить функции, которые являются избыточными или не дают дополнительных сведений.

В следующем коде мы удаляем функции, соответствующие этим критериям:

Вменение отсутствующих данных

Когда остались только соответствующие функции, следующим шагом будет работа с недостающими значениями. В целях сохранения как можно большего количества данных отсутствующие значения будут заменены, а не удалены, когда это возможно.

Помимо таких функций, как «bite_date» и «Victim_zip», ни одна из функций не требует определенного значения. Достаточно заменить нулевые значения новой категорией для представления неизвестных значений для этих функций.

Это правило будет применено к столбцам «BreedIDDesc», «GenderIDDesc», «color» и «WhereBittenIDDesc». Для этих функций отсутствующие значения будут заменены значением «НЕИЗВЕСТНО».

Удаление отсутствующих данных

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

Таким образом, все записи с пропущенными значениями в столбцах «bite_date», «SpeciesIDDesc» или «жертва_zip» будут удалены.

После очистки данных

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

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

Заключение

Многие программисты (в том числе и я) привыкли использовать общие языки программирования, такие как Python и R, для выполнения сомнительных задач по очистке данных. Однако у SQL также есть некоторые возможности в этой области.

Возможность управлять необработанными данными с помощью SQL позволяет сделать очистку данных более простой и удобной.

Удачного кодирования!