pandas.to_numeric
-
pandas.to_numeric(arg, errors='raise', downcast=None)[source] -
Преобразование аргумента в числовой тип.
Параметры: arg : список, кортеж, одномерный массив или Series
errors : {‘ignore’, ‘raise’, ‘coerce’}, по умолчанию ‘raise’
- Если ‘raise’, некорректный разбор вызовет исключение
- Если ‘coerce’, некорректный разбор будет преобразован в NaN
- Если ‘ignore’, некорректный разбор вернёт исходное значение
downcast : {‘integer’, ‘signed’, ‘unsigned’, ‘float’} , по умолчанию None
Если не None, и данные успешно преобразованы к числовому типу данных (или если данные изначально были числовыми), то полученные данные будут применены к наименьшему возможному числовому типу данных по следующим правилам:
- ‘integer’ или ‘signed’: наименьший знаковый целочисленный тип данных (мин.: np.int8)
- ‘unsigned’: наименьший беззнаковый целочисленный тип данных (мин.: np.uint8)
- ‘float’: наименьший тип данных с плавающей запятой (мин.: np.float32)
Так как это поведение отделено от основного преобразования в числовые значения, любые ошибки, возникшие во время приведения типов, будут отображены независимо от значения входного параметра ‘errors’.
Кроме того, приведение типов произойдёт только если размер типа данных результирующих данных строго больше типа данных, к которому они должны быть приведены. Таким образом, если ни один из проверок типов данных не удовлетворяет этому условию, приведение типов данных не будет выполнено.
Введено в версии 0.19.0.
Возвращает: ret : числовой тип, если разбор выполнен успешно.
Тип возвращаемого значения зависит от входных данных. Series, если входные данные Series, иначе ndarray
Примеры
Взять отдельные Series и преобразовать в числовой тип, выполнив приведение при необходимости
>>> import pandas as pd >>> 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='ignore') 0 apple 1 1.0 2 2 3 -3 dtype: object >>> pd.to_numeric(s, errors='coerce') 0 NaN 1 1.0 2 2.0 3 -3.0 dtype: float64
© 2008–2012, 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/0.19.2/generated/pandas.to_numeric.html