Метод infer_objects
Метод infer_objects применяется к DataFrame
и пытается определить более подходящие типы данных
для столбцов, которые содержат объекты типа object.
Например, столбец с числами, сохранёнными как строки,
может быть преобразован в int64 или float64.
Метод не изменяет исходную таблицу, а возвращает новую
с предполагаемыми типами данных.
Синтаксис
df.infer_objects()
Пример
Пусть у нас есть таблица, в которой числовые значения хранятся как строки:
import pandas as pd
df = pd.DataFrame({
'a': ['1', '2', '3', '4', '5'],
'b': ['10', '20', '30', '40', '50']
})
print(df.dtypes)
Результат выполнения кода:
a object
b object
dtype: object
Применим метод infer_objects:
import pandas as pd
df = pd.DataFrame({
'a': ['1', '2', '3', '4', '5'],
'b': ['10', '20', '30', '40', '50']
})
res = df.infer_objects()
print(res.dtypes)
Результат выполнения кода:
a int64
b int64
dtype: object
Как видим, строки были преобразованы в числа.
Пример
Метод infer_objects также может работать
с датами и временем. Рассмотрим таблицу, где даты
представлены в виде строк:
import pandas as pd
df = pd.DataFrame({
'date': ['2026-01-01', '2026-02-01', '2026-03-01'],
'value': ['100', '200', '300']
})
res = df.infer_objects()
print(res.dtypes)
Результат выполнения кода:
date object
value int64
dtype: object
В данном случае столбец с датами остался
типом object, так как для преобразования
в дату нужно использовать метод to_datetime.
Пример
Метод infer_objects не изменяет исходную
таблицу, а возвращает новую. Проверим это:
import pandas as pd
df = pd.DataFrame({
'a': ['1', '2', '3'],
'b': ['10', '20', '30']
})
res = df.infer_objects()
print(df.dtypes)
Результат выполнения кода:
a object
b object
dtype: object
Исходная таблица осталась без изменений.
Смотрите также
-
метод
astype,
который явно преобразует типы данных столбцов -
метод
convert_dtypes,
который преобразует столбцы в наилучшие возможные типы -
метод
select_dtypes,
который возвращает столбцы по типу данных -
атрибут
dtypes,
который выводит типы данных всех столбцов