В этом руководстве по Pandas будут рассмотрены все возможные методы удаления нечисловых столбцов из DataFrame Pandas в Python. Мы поймем, почему следует удалять нечисловые столбцы, когда удалять и какие нечисловые столбцы следует удалить из набора данных для лучшего анализа.
- Импорт набора данных
- С помощью метода DataFrame._get_numeric_data()
- Используя метод «select_dtypes([‘number’])»
- Используя метод «pd.to_numeric()»
- Почему Pandas удаляет категориальные столбцы
- Когда удалять
- Заключение
Импорт набора данных
Мы можем напрямую загрузить набор данных с Seaborn.
#Import the necessary libraries import numpy as np import pandas as pd import seaborn as sns #Load the dataset after downloading manually from kaggle data=pd.read_csv("tips.csv") data.head() (or) #Load the dataset using seaborn library without downloading data=sns.load_dataset("tips") data.head()
На выходном изображении ниже мы можем видеть, что наш набор данных о советах содержит такие столбцы, как total_bill, Tip, пол, статус курения, день, время и размер. Он дает полную информацию о клиенте, необходимую для дальнейшего анализа.
Существует множество способов удалить нечисловые столбцы из DataFrame Pandas в Python. Мы можем использовать следующие функции, которые уже существуют в библиотеке Python:
- DataFrame._get_numeric_data()
- select_dtypes([‘число’])
- pd.to_numeric()
С помощью метода DataFrame._get_numeric_data()
Метод DataFrame._get_numeric_data() в Python сохраняет только числовые столбцы и исключает нечисловые столбцы из Pandas DataFrame или сложных наборов данных.
- Здесь, в приведенном ниже коде, мы можем наблюдать, что встроенная функция «_get_numeric_data()» возвращает числовые столбцы из набора данных «данные».
- Вместо удаления нечисловых столбцов из исходного набора данных. Мы инициализировали новую переменную data_numeric для хранения числовых данных Pandas DataFrame или набора данных.
# Dropping all non numeric columns and storing only numeric columns of a dataset data_numeric = data._get_numeric_data() data_numeric
Выходное изображение ниже показывает, что все нечисловые столбцы удаляются из загруженного набора данных, а левые числовые столбцы сохраняются в переменной data_numeric в Python.
Используя метод «select_dtypes([‘number’])»
Метод «select_dtypes([‘number’])» в Python сохраняет только числовые столбцы и исключает нечисловые столбцы из Pandas DataFrame или сложных наборов данных.
- Здесь, в приведенном ниже коде, мы можем наблюдать, что встроенная функция «select_dtypes([‘number’])» сохранит числовые столбцы из набора данных «data», поскольку мы передали тип данных «number» в функцию select_dtypes().
- Вместо удаления нечисловых столбцов из исходного набора данных. Мы инициализировали новую переменную data_numeric для хранения числовых данных Pandas DataFrame или набора данных.
# Dropping all non numeric columns and storing only numeric columns of a dataset data_numeric=data.select_dtypes(['number']) data_numeric
Из выходного изображения ниже мы можем видеть, что все нечисловые столбцы удаляются из загруженного набора данных, а остальные числовые столбцы сохраняются в переменной data_numeric в Python.
Таким образом, мы можем удалить нечисловые столбцы из DataFrame или набора данных в Python, используя метод select_dtypes([‘number’]).
Используя метод «pd.to_numeric()»
Метод Python pd.to_numeric() преобразует каждое значение в наборе данных в числовой тип данных.
Если ему не удастся преобразовать в числовой тип данных, он вернет NaN в Python.
- В приведенном ниже коде мы можем наблюдать, что методу pd.to_numeric() передается error=’coerce’, что означает, что метод pd.to_numeric() в Python попытается преобразовать каждую ячейку в числовой тип данных. Если преобразовать не удастся, ячейка будет заменена на NaN, поскольку принудительное значение передается в параметр ошибок в pd.to_numeric() в Python Pandas.
- Затем вызывается метод Pandas dropna() для удаления нулевых значений из набора данных. т. е. из набора данных будут удалены все нечисловые столбцы, поскольку функции передается ось = 1.
# Dropping all non numeric columns and storing only numeric columns of a dataset data_numeric=data.applymap(lambda x: pd.to_numeric(x, errors='coerce')).dropna(axis=1) data_numeric
Из выходного изображения ниже мы можем видеть, что все нечисловые столбцы удаляются из загруженного набора данных, а остальные числовые столбцы сохраняются в переменной data_numeric в Python.
Почему Pandas удаляет категориальные столбцы
До сих пор мы научились удалять нечисловые столбцы. Теперь дайте нам знать, чтобы сосредоточиться на том, когда удалять нечисловые столбцы из Pandas DataFrame в Python:
- Люди могут понимать категориальные данные. Мы понимаем числа только в таких машинах, как наши компьютеры. Итак, все, что мы передаем в качестве входных данных, сначала преобразуется в числа, а затем машина понимает.
- Мы обычно опускаем нечисловые столбцы в Python Pandas, чтобы избежать путаницы и сложности.
Когда удалять
Теперь дайте нам знать, чтобы сосредоточиться на том, когда удалять нечисловые столбцы из Pandas DataFrame в Python:
- Удаление всех нечисловых столбцов в наборе данных Pandas не всегда является лучшим выбором.
- Нам приходится удалять нечисловые столбцы, только если они не важны для набора данных.
- Если в нашем наборе данных есть важный нечисловой столбец, то вместо его удаления мы преобразуем его в числовые значения, используя такие методы, как кодирование меток, одно горячее кодирование и т. д.
Заключение
В этом руководстве мы увидели различные методы удаления нечисловых столбцов из DataFrame Pandas с помощью функций pd.to_numeric(), select_dtypes([‘number’]), _get_numeric_data() в Python с примерами.