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

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

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

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

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

Выполнение:

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

Например, мы используем Loan Data.

Мы видим, что в столбце «Сумма займа» есть значение NaN.

Использование dropna():

В следующем наборе данных мы будем использовать функцию dropna, чтобы удалить строку, связанную с отсутствующим столбцом. По сути, с помощью метода dropna вы можете удалить строки или столбцы, которые содержат пропущенные значения, например NaN. Чтобы изменить фрейм данных, вы должны установить параметр «inplace» равным true.

df.dropna(subset = ["LoanAmount"], axis=0,inplace=True)

«Inplace=True» просто записывает результат обратно во фрейм данных. Не забывайте, что эта строка кода не изменяет фрейм данных, но является хорошим способом убедиться, что вы выполняете правильную операцию. Давайте посмотрим, какие изменения были внесены в наш фрейм данных.

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

Вы всегда должны проверять документацию, если вы не знакомы с функцией или методом.

Использование замены():

Чтобы заменить отсутствующие значения, такие как NaN, фактическими значениями, в библиотеке pandas есть встроенный метод «заменить», который можно использовать для заполнения отсутствующих значений вновь вычисленными значениями.

dataframe.replace(missing_value, new_value)

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

Давайте проверим только функцию «LoanAmount»:

df['LoanAmount']

mean = df["LoanAmount"].mean()
df["LoanAmount"].replace(np.nan, mean)

Результатом будет следующее:

Использование заполнения():

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

Ищем столбец «Пол».

df.Gender.value_counts()

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

df["Gender"]= df["Gender"].fillna("Male")

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

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