pandas.to_numeric#
- pandas.to_numeric(arg, errors='raise', downcast=None)[源代码]#
将参数转换为数值类型。
默认返回数据类型为 float64 或 int64 取决于所提供的数据。使用 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