pandas.to_numeric
- pandas.to_numeric(arg, errors='raise', downcast=None, dtype_backend=<no_default>)[source]
-
Преобразует аргумент в числовой тип.
Тип данных по умолчанию для возвращаемого значения — float64 или int64 в зависимости от переданных данных. Используйте параметр downcast, чтобы получить другие типы данных.
Обратите внимание, что при передаче очень больших чисел может произойти потеря точности. Из-за внутренних ограничений ndarray, если переданы числа меньше -9223372036854775808 (np.iinfo(np.int64).min) или больше 18446744073709551615 (np.iinfo(np.uint64).max), весьма вероятно, что они будут преобразованы в числа с плавающей точкой, чтобы их можно было хранить в ndarray. Эти предупреждения также относятся к Series, поскольку внутри он использует ndarray.
- Параметры:
-
- arg:scalar, list, tuple, 1-d array, or Series
-
Аргумент для преобразования.
- errors:{‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’
-
Если ‘raise’, некорректный разбор вызовет исключение.
Если ‘coerce’, некорректно разобранные значения будут заменены на NaN.
Если ‘ignore’, при некорректном разборе будет возвращён входной аргумент.
Изменено в версии 2.2.
Значение “ignore” устарело. Вместо него явно перехватывайте исключения.
- downcast:str, default None
-
Может принимать значения ‘integer’, ‘signed’, ‘unsigned’ или ‘float’. Если значение не равно None и данные успешно преобразованы в числовой тип (или изначально были числовыми), преобразует полученные данные в наименьший возможный числовой тип согласно следующим правилам:
‘integer’ или ‘signed’: наименьший тип знакового целого числа (мин.: np.int8)
‘unsigned’: наименьший тип беззнакового целого числа (мин.: np.uint8)
‘float’: наименьший тип числа с плавающей точкой (мин.: np.float32)
Поскольку это поведение не связано с основным преобразованием в числовые значения, любые ошибки, возникшие при понижении типа, будут переданы независимо от значения параметра ‘errors’.
Кроме того, понижение типа выполняется только в том случае, если размер типа данных результата строго больше размера типа, к которому его нужно преобразовать. Поэтому, если ни один из проверяемых типов не удовлетворяет этому условию, понижение типа данных не выполняется.
- dtype_backend:{‘numpy_nullable’, ‘pyarrow’}, default ‘numpy_nullable’
-
Тип данных серверной части, применяемый к результирующему объекту
DataFrame(всё ещё экспериментальная возможность). Поведение описано ниже:"numpy_nullable": возвращаетDataFrame, использующий nullable-типы данных (по умолчанию)."pyarrow": возвращает DataFrame с nullable-типами данных на основе pyarrowArrowDtype.
Добавлено в версии 2.0.
- Возвращает:
-
- ret
-
Числовое значение, если разбор выполнен успешно. Тип возвращаемого значения зависит от входных данных. Если на входе Series, возвращается Series, в противном случае — ndarray.
См. также
DataFrame.astype-
Преобразует аргумент в указанный тип данных.
to_datetime-
Преобразует аргумент в дату и время.
to_timedelta-
Преобразует аргумент в timedelta.
numpy.ndarray.astype-
Преобразует массив numpy в указанный тип.
DataFrame.convert_dtypes-
Преобразует типы данных.
Примеры
Возьмём отдельные ряды и преобразуем их в числовой тип, используя принудительное преобразование по необходимости
>>> s = pd.Series(['1.0', '2', -3]) >>> pd.to_numeric(s) 0 1.0 1 2.0 2 -3.0 dtype: float64 >>> pd.to_numeric(s, downcast='float') 0 1.0 1 2.0 2 -3.0 dtype: float32 >>> pd.to_numeric(s, downcast='signed') 0 1 1 2 2 -3 dtype: int8 >>> s = pd.Series(['apple', '1.0', '2', -3]) >>> pd.to_numeric(s, errors='coerce') 0 NaN 1 1.0 2 2.0 3 -3.0 dtype: float64
Поддерживается понижение типа для nullable-типов целых чисел и чисел с плавающей точкой:
>>> s = pd.Series([1, 2, 3], dtype="Int64") >>> pd.to_numeric(s, downcast="integer") 0 1 1 2 2 3 dtype: Int8 >>> s = pd.Series([1.0, 2.1, 3.0], dtype="Float64") >>> pd.to_numeric(s, downcast="float") 0 1.0 1 2.1 2 3.0 dtype: Float32
© 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.to_numeric.html