Выбор числовых столбцов в Pandas: функция is_numeric()
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Для обнаружения числовых столбцов в Pandas можно применить встроенную функцию select_dtypes
:
numeric_cols = df.select_dtypes(include='number').columns
Таким образом, мы получаем список всех числовых столбцов, куда входят как целые, так и вещественные числа. Если требуется уточнить тип данных, можно использовать:
float_cols = df.select_dtypes(include='float64').columns
int_cols = df.select_dtypes(include='int64').columns
Функция select_dtypes
– удобный инструмент для масштабной обработки данных, даже если их объём достаточно велик.
Отбор числовых данных
select_dtypes
позволяет выделить числовые столбцы из всего массива данных, предлагая гибкие и масштабируемые способы их отбора.
# Отбор числовых и булевых столбцов
numeric_bool_cols = df.select_dtypes(include=['number', 'bool']).columns
# Исключение нечисловых столбцов
non_numeric_cols = df.select_dtypes(exclude='number').columns
Предупреждение ошибок приведения типов
Для предотвращения нежелательного приведения типов, важно произвести проверку числовых столбцов:
# Проверка на числовые типы данных
assert all(df[numeric_cols].apply(lambda x: pd.api.types.is_numeric_dtype(x)))
Такой подход обеспечить надёжность распознавания числовых столбцов, независимо от процесса обработки данных.
Немного обращаемый внимание герой – метод _get_numeric_data()
Помимо select_dtypes
существует метод ._get_numeric_data()
, который может работать быстрее, однако предпочтение лучше отдать документированному и более стабильному варианту.
# Получение всех числовых данных
all_numeric_df = df._get_numeric_data()
Метод не является официально задокументированным, поэтому при его использовании существует риск изменений в новых версиях Pandas.
Визуализация
Работать с select_dtypes
можно сравнить с применением детектора золота, который отсеивает ценные числовые столбцы из общего пула данных.
numeric_df = df.select_dtypes(include=[np.number])
# Детектор обнаруживает числовые «золотые жилы» среди данных
Углублённый поиск по типам данных
Специализированный подход
В Pandas задействовано большое количество числовых типов для решения различных задач:
# Выделение столбцов определённых типов
optimized_cols = df.select_dtypes(include=['int8', 'int16', 'float16']).columns
Работа со сложными типами
Помимо числовых столбцов бывают полезны также и столбцы datetime или timedelta:
# Добавление к числовым данным временных типов
numer_time_cols = df.select_dtypes(include=['number','datetime','timedelta']).columns
Внимание к смешанным типам
Столбцы смешанных типов могут сбивать с толку, так как вобрав в себя числовые и нечисловые данные, они могут влиять на анализ:
# Выявление смешанных столбцов
imp_cols = df.applymap(lambda x: isinstance(x, (int, float, str))).any()
suspect_cols = df.columns[imp_cols]
Полезные материалы
- Документация pandas 2.2.0 для pandas.DataFrame.select_dtypes
- Документация pandas 0.23.1 для pandas.DataFrame.dtypes
- Документация pandas 2.2.0 для pandas.DataFrame.info
- Статья о работе с пропущенными данными в Pandas на GeeksforGeeks
- Обзор типов данных Pandas на Practical Business Python
- Оптимизация работы с данными в Pandas – Real Python