pandas.to_numeric
- pandas.to_numeric(arg, errors='raise', downcast=None)[source]
-
Преобразовать аргумент в числовой тип.
По умолчанию возвращаемый тип данных — float64 или int64 в зависимости от предоставленных данных. Используйте параметр downcast, чтобы получить другие типы данных.
Обратите внимание, что может произойти потеря точности, если переданы очень большие числа. Из-за внутренних ограничений ndarray, если переданы числа меньше -9223372036854775808 (np.iinfo(np.int64).min) или больше 18446744073709551615 (np.iinfo(np.uint64).max), очень вероятно, что они будут преобразованы в float, чтобы их можно было сохранить в ndarray. Эти предупреждения аналогичным образом применяются к Series, так как она внутренне использует ndarray.
- Параметры
-
- arg:скаляр, список, кортеж, одномерный массив или Series
-
Аргумент, который должен быть преобразован.
- errors:{‘ignore’, ‘raise’, ‘coerce’}, по умолчанию ‘raise’
-
Если ‘raise’, то при некорректном парсинге будет возбуждено исключение.
Если ‘coerce’, то некорректный парсинг будет заменён на NaN.
Если ‘ignore’, то некорректный парсинг вернёт исходное значение.
- downcast:строка, по умолчанию None
-
Может быть ‘integer’, ‘signed’, ‘unsigned’ или ‘float’. Если не None, и если данные успешно преобразованы в числовой тип данных (или если данные изначально были числовыми), то эти данные будут понижены до наименьшего возможного числового типа данных по следующим правилам:
‘integer’ или ‘signed’: наименьший знаковый целочисленный тип данных (мин.: np.int8)
‘unsigned’: наименьший беззнаковый целочисленный тип данных (мин.: np.uint8)
‘float’: наименьший тип данных с плавающей точкой (мин.: np.float32)
Так как это поведение отделено от основного преобразования в числовые значения, любые ошибки, возникшие во время понижения, будут отображены независимо от значения входного параметра ‘errors’.
Кроме того, понижение произойдёт только в том случае, если размер типа данных результирующих данных строго больше, чем тип данных, к которому они должны быть преобразованы. Поэтому, если ни один из проверенных типов данных не соответствует этому требованию, понижение типов данных не будет выполнено.
- Возвращает
-
- ret
-
Числовое значение, если парсинг прошёл успешно. Тип возвращаемого значения зависит от входных данных. Series, если Series, в противном случае ndarray.
См. также
DataFrame.astype-
Преобразовать аргумент в указанный тип данных.
to_datetime-
Преобразовать аргумент в дату и время.
to_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='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
Поддерживается понижение типов 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/1.5.0/reference/api/pandas.to_numeric.html