pandas.to_numeric
- pandas.to_numeric(arg, errors='raise', downcast=None, dtype_backend=_NoDefault.no_default)[source]
-
Преобразовать аргумент в числовой тип.
Значение по умолчанию для возвращаемого типа — float64 или int64, в зависимости от предоставленных данных. Используйте параметр downcast для получения других типов.
Обратите внимание, что может произойти потеря точности, если переданы очень большие числа. Из-за внутренних ограничений ndarray, если переданы числа меньше -9223372036854775808 (np.iinfo(np.int64).min) или больше 18446744073709551615 (np.iinfo(np.uint64).max), есть большая вероятность, что они будут преобразованы в float, чтобы их можно было сохранить в ndarray. Эти предупреждения аналогичным образом применяются к Series, поскольку она внутренне использует ndarray.
- Параметры:
-
- arg:скаляр, список, кортеж, 1-мерный массив или Series
-
Аргумент, который нужно преобразовать.
- errors:{‘ignore’, ‘raise’, ‘coerce’}, по умолчанию ‘raise’
-
Если ‘raise’, при некорректном разборе будет возбуждено исключение.
Если ‘coerce’, при некорректном разборе будет установлено значение NaN.
Если ‘ignore’, при некорректном разборе будет возвращен исходный элемент.
Изменено в версии 2.2.
“ignore” устарело. Вместо этого следует явно обрабатывать исключения.
- downcast:строка, по умолчанию None
-
Может быть ‘integer’, ‘signed’, ‘unsigned’ или ‘float’. Если не None и если данные успешно преобразованы в числовой тип (или если данные изначально были числовыми), то эти данные будут приведены к наименьшему возможному числовому типу по следующим правилам:
‘integer’ или ‘signed’: наименьший знаковый целочисленный тип (мин.: np.int8)
‘unsigned’: наименьший беззнаковый целочисленный тип (мин.: np.uint8)
‘float’: наименьший тип с плавающей запятой (мин.: np.float32)
Поскольку это поведение отделено от основного преобразования в числовые значения, любые ошибки, возникающие при приведении к типу, будут отображаться независимо от значения входного параметра ‘errors’.
Кроме того, приведение к типу произойдёт только в том случае, если размер типа результирующих данных строго больше типа, к которому данные будут приведены. Таким образом, если ни один из проверенных типов не удовлетворяет этому условию, приведение к типу не будет выполнено.
- dtype_backend:{‘numpy_nullable’, ‘pyarrow’}, по умолчанию ‘numpy_nullable’
-
Применяемый к результирующему
DataFrameтип данных (пока экспериментально). Поведение следующее:"numpy_nullable": возвращаетDataFrameс nullable-типом (по умолчанию)."pyarrow": возвращает DataFrame с nullableArrowDtypeна основе pyarrow.
Введено в версии 2.0.
- Возвращаемое значение:
-
- ret
-
Числовое значение, если разбор прошёл успешно. Тип возвращаемого значения зависит от входных данных. Series, если вход был Series, в противном случае ndarray.
См. также
DataFrame.astype-
Приведение аргумента к указанному типу.
to_datetime-
Преобразование аргумента в datetime.
to_timedelta-
Преобразование аргумента в timedelta.
numpy.ndarray.astype-
Приведение массива numpy к указанному типу.
DataFrame.convert_dtypes-
Преобразование типов данных.
Примеры
Взять отдельные series и преобразовать в числовой тип, принудительно выполняя преобразование, когда это необходимо
>>> 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 integer и floating:
>>> 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–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.to_numeric.html