Функция to_numeric
Функция to_numeric применяется к данным различных типов
и преобразует их в числовой формат. Первым параметром
передаются данные для преобразования, вторым можно указать
способ обработки ошибок при помощи параметра errors.
Если параметр не указан, функция пытается преобразовать все
значения и вызывает ошибку при невозможности преобразования.
Синтаксис
pd.to_numeric(data, errors='raise', downcast=None)
Пример
Давайте преобразуем серию строковых значений в числа:
import pandas as pd
ser = pd.Series(['1', '2', '3', '4', '5'])
res = pd.to_numeric(ser)
print(res)
Результат выполнения кода:
0 1
1 2
2 3
3 4
4 5
dtype: int64
Пример
Давайте преобразуем серию с числами в формате строки:
import pandas as pd
ser = pd.Series(['10.5', '20.7', '30.2'])
res = pd.to_numeric(ser)
print(res)
Результат выполнения кода:
0 10.5
1 20.7
2 30.2
dtype: float64
Пример
Давайте преобразуем список с данными разных типов:
import pandas as pd
data = ['1', 2, '3.5', 4]
res = pd.to_numeric(data)
print(res)
Результат выполнения кода:
[1. 2. 3.5 4. ]
Пример
Давайте укажем параметр errors со значением coerce,
чтобы преобразовать невозможные значения в NaN:
import pandas as pd
ser = pd.Series(['1', '2', 'abc', '4', '5'])
res = pd.to_numeric(ser, errors='coerce')
print(res)
Результат выполнения кода:
0 1.0
1 2.0
2 NaN
3 4.0
4 5.0
dtype: float64
Пример
Давайте укажем параметр errors со значением ignore,
чтобы оставить невозможные значения без изменений:
import pandas as pd
ser = pd.Series(['1', '2', 'abc', '4', '5'])
res = pd.to_numeric(ser, errors='ignore')
print(res)
Результат выполнения кода:
0 1
1 2
2 abc
3 4
4 5
dtype: object
Пример
Давайте применим параметр downcast для уменьшения размера данных:
import pandas as pd
ser = pd.Series(['1', '2', '3', '4', '5'])
res = pd.to_numeric(ser, downcast='integer')
print(res)
Результат выполнения кода:
0 1
1 2
2 3
3 4
4 5
dtype: int8
Пример
Давайте применим downcast к числам с плавающей точкой:
import pandas as pd
ser = pd.Series(['1.5', '2.7', '3.2'])
res = pd.to_numeric(ser, downcast='float')
print(res)
Результат выполнения кода:
0 1.5
1 2.7
2 3.2
dtype: float32
Смотрите также
-
функция
is_numeric_dtype,
которая проверяет, является ли тип данных числовым -
функция
is_integer_dtype,
которая проверяет, является ли тип данных целочисленным -
функция
is_float_dtype,
которая проверяет, является ли тип данных вещественным -
атрибут
display.precision,
который задаёт точность отображения чисел