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
Примеры
Взять отдельные серии и преобразовать в числовые, выполняя принудительное преобразование, когда это указано
>>> 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.20.3/generated/pandas.to_numeric.html