Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.to_numeric方法的使用。

pandas.to_numeric(arg, errors='raise', downcast=None)          [source]

将参数转换为数字类型。

默认返回dtypefloat64int64, 具体取决于提供的数据。使用downcast参数获取其他dtype

请注意,如果传入非常大的数字,则可能会导致精度损失。由于ndarray的内部限制,如果数字小于-9223372036854775808(np.iinfo(np.int64).min)或大于18446744073709551615(np.iinfo(np.uint64).max)传入,很有可能会将它们转换为float以便将其存储在ndarray中。这些警告类似地适用于 Series,因为它在内部利用ndarray。

参数

arg : scalar(标量),list(列表),

(tuple)元组,一维数组(1-d array)或Series

errors  : {'ignore','raise','coerce'}

默认为'raise'

如果为‘raise’

则无效的解析将引发异常

如果为 ‘coerce’

则将无效解析设置为NaN

如果为 ‘ignore’

则无效的解析将返回输入

downcast : 

{'integer','signed','unsigned','float'}

默认为None

如果不是None(无),并且数据已成功转换为数字dtype

(或者数据是从数字开始的),

则根据以下规则将结果数据转换为可能的最小数字dtype:

'integer'或'signed'

最小的有符号int dtype(最小值:np.int8

'unsigned'

最小的无符号int dtype(最小值:np.uint8

'float'

最小的float dtype(最小值:np.float32

由于此行为与从核心转换为数值的行为是分开的,

因此无论 ‘errors’ 输入的值如何,

向下转换期间引发的任何错误都会浮出水面。

此外,仅当结果数据的dtype的大小,

严格大于要强制转换为dtype的dtype时,

才会发生向下转换,因此,

如果检查的所有dtype都不满足该规范,

则不会对该数据执行向下转换。

0.19.0版中的新功能。

返回值

ret : 解析成功时为numeric(数字)。

返回类型取决于输入。

如果为Series

则为Series,否则为ndarray

例子

采取单独的系列并转换为数字,当被告知时强制

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