Первым шагом в очистке данных для меня обычно является поиск отсутствующих данных. Отсутствующие данные могут иметь разные источники, их может не быть в наличии, они могут быть потеряны, повреждены, и обычно это не проблема, мы можем заполнить их, но я думаю, что часто отсутствующие данные сами по себе очень информативны, в то время как мы можем заполнить данные средним значением или чем-то подобным, и я покажу вам, как это часто делается,
Например, если у вас интернет-магазин одежды, если покупатель ни разу не кликнул на категорию для детей, скорее всего, у него нет детей. Вы можете узнать много нового, просто взяв информацию, которой там нет.
Библиотека missingno
Missingno — это замечательный модуль Python, который предоставляет набор визуализаций, помогающих понять наличие и распределение отсутствующих данных в кадре данных pandas. Это может иметь форму дендрограммы, тепловой карты, гистограммы или матричного графика.
С помощью этих графиков мы можем определить, где встречаются отсутствующие значения, какова величина пропусков и связаны ли отсутствующие значения друг с другом.
С помощью команды pip вы можете установить библиотеку missingno:
pip install missingno
Импорт библиотек и загрузка данных
import pandas as pd
import missingno as msno
df = pd.read_csv('housing.csv')
df.head()
Быстрый анализ с помощью Pandas
Прежде чем мы воспользуемся библиотекой missingno, в библиотеке pandas есть несколько функций, которые могут дать нам представление о количестве отсутствующих данных.
Первый способ — использовать метод .describe(). Эта функция возвращает таблицу со сводной статистикой о кадре данных, такой как среднее, максимальное и минимальное значения.
df.describe()
Используя метод .info(), мы можем продвинуться на один шаг дальше. В дополнение к сводной информации о фрейме данных вы получите подсчет ненулевых значений.
df.info()
Еще одна быстрая техника
df.isna().sum()
Эта функция выдает сводку о количестве отсутствующих значений в кадре данных. Функция isna() находит недостающие значения в датафрейме и возвращает булевский результат для каждого элемента датафрейма. Функция sum() суммирует все истинные значения.
Использование missingno для выявления отсутствующих данных
В библиотеке missingno есть четыре типа графиков для визуализации полноты данных: гистограммы, матричные графики, тепловые карты и дендрограммы.
msno.matrix(df)
Столбец total_bedrooms на полученном графике отображает некоторое количество отсутствующих данных.
msno.bar(df)
Гистограмма представляет собой простой график, где каждый столбец представляет колонку в рамке данных. Высота столбца показывает, насколько полным является этот столбец, т.е. сколько ненулевых значений в нем присутствует.
Вы можете заметить, что высота столбца total_bedrooms меньше, чем у других столбцов.
Сводка
Определение отсутствующих данных перед использованием машинного обучения — важный шаг в конвейере качества данных. Это возможно с помощью библиотеки missingno и последовательности визуализаций.
Спасибо за ваше время!