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