Spec-Zone.ru › pandas 1

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API