Рубрики
Без рубрики

Обращение с отсутствующими значениями

Заголовок фото Эмили Мортером на Unsplash ключевой частью науки о данных – очистить данные перед WO … с меткой Datascity, Учебник, начинающих, Python.

Фото заголовка Эмили на Бессмысленно

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

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

Считать отсутствующие значения

Перед обработкой отсутствующих ценностей мы должны точно знать, сколько из них у нас есть. Код ниже подсчитывает все недостающие значения в PandaS DataFrame DF и распечатать все по столбцу.

df.isnull().sum()

Выход:

budget                     0
genres                    28
homepage                3091
id                         0
keywords                 412
original_language          0

Проверьте относительные данные отсутствуют

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

def percent_missing(df: pd.DataFrame) -> float:
    # # of rows x # of columns using numpy product function
    total_data_points = np.product(df.shape)
    total_missing = df.isnull().sum().sum()
    return (total_missing/total_data_points)*100

print(f"{percent_missing(df)}"%)

Выход:

3.863904504129364%

Ряды падения со пропущенными значениями

Подход к обработке недостающих данных – это просто для отброса всех строк, содержащих недостающие значения. Опять же, решение должно быть сделано после тщательного анализа. Но, если мы решили бросить строки, код довольно прост.

df.dropna()

Падение колонн с отсутствующими значениями

Если мы решили бросить столбцы вместо этого, мы просто говорим, что к Dropna () Способ с параметром оси.

df.dropna(axis=1)

Заполните недостающие значения

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

Используя панды

Пандас имеет Fillna () Способ иметь дело с этим. Мы указываем значение, которое мы хотим заполнить и передавать его как аргумент для метода. В нижнем коде мы заполняем все недостающие ячейки с 0 Отказ

df.fillna(0)

Использование Scikit-Learn

С Scikit – у нас есть более сложные способы справиться с проблемой. Например, мы можем заполнить категорическую колонку с наиболее частым значением, наблюдаемым на нем, или заполнить числовую колонку со средним значением данных. Sklearn SimpleImputer Урок имеет много стратегий для намывания данных, как вы можете видеть в своей документации. Код ниже использует most_frequent стратегия, это

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

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='most_frequent')
new_df = imputer.fit_transform(df)

В будущей статье я буду охватывать более подробно использование Scikit – учиться. Увидимся!

Документация

Pandas Dropna () Pandas Fillna () Scikit-Survey SimpleImputer ()

Оригинал: “https://dev.to/thalesbruno/handling-missing-values-m2k”