Spec-Zone.ru › pandas 2

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-типами данных на основе pyarrow ArrowDtype.

Добавлено в версии 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API