Фото заголовка Эмили на Бессмысленно
Ключевой частью науки о данных является очистка данных, прежде чем с ней работать. Например, распространено обнаружение отсутствующих значений в наборе данных, либо потому, что данные не были собраны, либо не существуют, хотя.
Зависит от данных, которые мы пропали, или даже почему у нас это нет, мы обрабатываем это по-разному. Итак, нам нужно тщательно проанализировать каждую колонку набора данных и решить, удалим ли мы все строки с отсутствующими значениями или удалите сам столбец или заполните ячейки некоторыми данными (и какие данные могут быть).
Считать отсутствующие значения
Перед обработкой отсутствующих ценностей мы должны точно знать, сколько из них у нас есть. Код ниже подсчитывает все недостающие значения в 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”