pandas.to_numeric#

pandas.to_numeric(arg, errors='raise', downcast=None)[源代码]#

将参数转换为数值类型。

默认返回数据类型为 float64int64 取决于所提供的数据。使用 downcast 参数以获取其他数据类型。

请注意,如果传入的数值真的很大,可能会出现精度损失。由于存在内部限制, ndarray ,如果数字小于 -9223372036854775808 (np.iinfo(np.int64).min)或大于 18446744073709551615 (np.iinfo(np.uint64).max)传入,则它们很可能会被转换为浮点型,以便可以存储在 ndarray 。这些警告同样适用于 Series 因为它在内部利用 ndarray

参数
arg标量、列表、元组、一维数组或系列

要转换的参数。

errors{‘忽略’,‘提升’,‘强制’},默认‘提升’
  • 如果为‘RAISE’,则无效的分析将引发异常。

  • 如果‘强制’,则无效解析将被设置为NaN。

  • 如果为‘Ignore’,则无效的解析将返回输入。

downcast字符串,默认为无

可以是“整型”、“带符号”、“无符号”或“浮点型”。如果不是无,并且如果数据已成功转换为数值数据类型(或者如果数据一开始就是数值数据类型),则根据以下规则将结果数据向下转换为可能的最小数值数据类型:

  • ‘INTEGER’或‘SIGNED’:最小有符号整型dtype(最小值:np.int8)

  • ‘unsign’:最小的无符号int dtype(最小值:np.uint8)

  • ‘Float’:最小的浮点型数据类型(最小值:np.flat32)

由于这一行为与核心到数值的转换是分开的,所以在向下转换过程中引发的任何错误都将浮出水面,而不管‘Errors’输入的值是多少。

此外,只有当结果数据的数据类型的大小严格大于要转换为的数据类型时,才会发生向下转换,因此,如果检查的数据类型都不满足该规范,则不会对数据执行向下转换。

退货
雷特

如果分析成功,则为数字。返回类型取决于输入。如果是系列,则为系列,否则为ndarray。

参见

DataFrame.astype

将参数强制转换为指定的数据类型。

to_datetime

将参数转换为日期时间。

to_timedelta

将参数转换为时间增量。

numpy.ndarray.astype

将Numy数组强制转换为指定类型。

DataFrame.convert_dtypes

转换数据类型。

示例

获取单独的序列并转换为数字,当被告知时进行强制

>>> 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

支持向下转换可为空的整型和浮点型数据类型:

>>> 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