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
См. также
-
pandas.DataFrame.astype - Преобразование аргумента в указанный тип.
-
pandas.to_datetime - Преобразование аргумента в дату и время.
-
pandas.to_timedelta - Преобразование аргумента в временной интервал.
-
numpy.ndarray.astype - Преобразование массива NumPy в указанный тип.
Примеры
Возьмите отдельные 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.22.0/generated/pandas.to_numeric.html