• Автор записи:
  • Рубрика записи:Pandas
  • Время чтения:2 минут чтения
  • Комментарии к записи:0 комментариев

В этом руководстве по Pandas будут рассмотрены все возможные методы удаления нечисловых столбцов из DataFrame Pandas в Python. Мы поймем, почему следует удалять нечисловые столбцы, когда удалять и какие нечисловые столбцы следует удалить из набора данных для лучшего анализа.

Содержание

Импорт набора данных

Мы можем напрямую загрузить набор данных с 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, пол, статус курения, день, время и размер. Он дает полную информацию о клиенте, необходимую для дальнейшего анализа.

Импортируйте или загрузите набор данных советов из Seaborn в Python

Существует множество способов удалить нечисловые столбцы из 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.

С помощью метода DataFrame._get_numeric_data()

Используя метод «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.

Используя метод «select_dtypes(['number'])»

Таким образом, мы можем удалить нечисловые столбцы из 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.

Используя метод «pd.to_numeric()» в Python

Почему Pandas удаляет категориальные столбцы

До сих пор мы научились удалять нечисловые столбцы. Теперь дайте нам знать, чтобы сосредоточиться на том, когда удалять нечисловые столбцы из Pandas DataFrame в Python:

  • Люди могут понимать категориальные данные. Мы понимаем числа только в таких машинах, как наши компьютеры. Итак, все, что мы передаем в качестве входных данных, сначала преобразуется в числа, а затем машина понимает.
  • Мы обычно опускаем нечисловые столбцы в Python Pandas, чтобы избежать путаницы и сложности.

Когда удалять

Теперь дайте нам знать, чтобы сосредоточиться на том, когда удалять нечисловые столбцы из Pandas DataFrame в Python:

  • Удаление всех нечисловых столбцов в наборе данных Pandas не всегда является лучшим выбором.
  • Нам приходится удалять нечисловые столбцы, только если они не важны для набора данных.
  • Если в нашем наборе данных есть важный нечисловой столбец, то вместо его удаления мы преобразуем его в числовые значения, используя такие методы, как кодирование меток, одно горячее кодирование и т. д.

Заключение

В этом руководстве мы увидели различные методы удаления нечисловых столбцов из DataFrame Pandas с помощью функций pd.to_numeric(), select_dtypes([‘number’]), _get_numeric_data() в Python с примерами.

Добавить комментарий