pandas.to_numeric # 熊猫。to_numeric ( arg ,错误= 'raise' , downcast = None , dtype_backend = _NoDefault.no_default ) [来源] # 将参数转换为数字类型。 默认返回 dtype 是float64或int64 ,具体取决于提供的数据。使用downcast参数获取其他数据类型。 请注意,如果传入的数字非常大,则可能会出现精度损失。由于ndarray的内部限制,如果数字小于-9223372036854775808 (np.iinfo(np.int64).min) 或大于18446744073709551615 (np.iinfo( np.uint64).max) 被传入,它们很可能会被转换为 float,以便它们可以存储在ndarray中。这些警告与Series类似, 因为它内部利用了ndarray。 参数: arg标量、列表、元组、一维数组或系列要转换的参数。 错误{'ignore', 'raise', 'coerce'}, 默认 'raise' 如果“引发”,则无效解析将引发异常。 如果“强制”,则无效解析将被设置为 NaN。 如果“忽略”,则无效解析将返回输入。 2.2 版本更改。 “忽略”已被弃用。相反,显式捕获异常。 向下转型str,默认 None可以是“整数”、“有符号”、“无符号”或“浮点”。如果不是 None,并且数据已成功转换为数字 dtype(或者如果数据一开始就是数字),则根据以下规则将结果数据向下转换为可能的最小数字 dtype: 'integer' 或 'signed':最小的有符号 int 数据类型(最小值:np.int8) 'unsigned':最小的无符号 int 数据类型(最小值:np.uint8) 'float':最小的浮点数据类型(最小值:np.float32) 由于此行为与到数值的核心转换是分开的,因此无论“错误”输入的值如何,在向下转换期间引发的任何错误都将浮出水面。 此外,只有当结果数据的数据类型的大小严格大于要转换为的数据类型时,才会发生向下转换,因此如果检查的数据类型都不满足该规范,则不会对数据执行向下转换。 dtype_backend {'numpy_nullable', 'pyarrow'}, 默认 'numpy_nullable'应用于结果的后端数据类型DataFrame (仍处于试验阶段)。行为如下: "numpy_nullable":返回 nullable-dtype-backed DataFrame (默认)。 "pyarrow":返回 pyarrow 支持的可为空的ArrowDtype DataFrame。 2.0版本中的新增内容。 返回: 雷特如果解析成功,则为数字。返回类型取决于输入。如果是系列则为系列,否则为 ndarray。 也可以看看 DataFrame.astype将参数转换为指定的数据类型。 to_datetime将参数转换为日期时间。 to_timedelta将参数转换为 timedelta。 numpy.ndarray.astype将 numpy 数组转换为指定类型。 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='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