Data Science

Мастерство преобразования типов данных в Pandas

Spread the love

Pandas — мощная библиотека Python для обработки и анализа данных. Управление типами данных имеет решающее значение для эффективной обработки данных. В этой статье рассматриваются различные методы эффективного изменения типов данных столбцов в ваших Pandas DataFrame.

Содержание

1. Преобразование в числовые типы с помощью pd.to_numeric()

Функция pd.to_numeric() идеально подходит для преобразования столбцов в числовые типы данных (int, float). Она особенно полезна при работе со столбцами, содержащими строковые представления чисел, часто встречающиеся при импорте данных.


import pandas as pd

data = {'col1': ['1', '2', '3', '4', '5'], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)

df['col1'] = pd.to_numeric(df['col1'])
print(df.dtypes)

Параметр errors управляет обработкой ошибок:

  • 'coerce': Недопустимые значения становятся NaN.
  • 'raise': Вызывает исключение для недопустимых значений.
  • 'ignore': Игнорирует недопустимые значения.

data = {'col1': ['1', '2', 'a', '4', '5']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'], errors='coerce')
print(df)

2. Гибкое преобразование типов с помощью astype()

Метод astype() предоставляет общий подход к изменению типов данных. Вы можете преобразовывать практически в любой поддерживаемый тип (int, float, str, bool, datetime и т. д.).


data = {'col1': [1, 2, 3, 4, 5], 'col2': [True, False, True, False, True]}
df = pd.DataFrame(data)

df['col1'] = df['col1'].astype(str)
df['col2'] = df['col2'].astype(int)
print(df.dtypes)

Внимание: Преобразование типов может привести к потере данных (например, усечение десятичных знаков при преобразовании float в int).

3. Интеллектуальный вывод типа с помощью infer_objects()

Метод infer_objects() полезен для DataFrame со смешанными типами данных в столбцах типа «object». Он пытается вывести наиболее подходящий тип для каждого столбца.


data = {'col1': ['1', 2, '3.14', 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
df = df.infer_objects()
print(df.dtypes)

Примечание: Несогласованные данные могут помешать успешному выводу типа.

4. Рекомендации по преобразованию типов данных

Всегда проверяйте свои данные до и после преобразования, чтобы убедиться в изменениях и избежать непредвиденных результатов. Используйте метод .info() для проверки типов данных и пропущенных значений. Грациозно обрабатывайте потенциальные ошибки, используя параметр errors в pd.to_numeric() или предварительно обработав данные для удаления или замены проблемных значений.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *