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 : (tuple)元组,一维数组(1-d array)或Series errors : 默认为 如果为 则无效的解析将引发异常 如果为 则将无效解析设置为NaN 如果为 则无效的解析将返回输入 downcast :
默认为 如果不是 (或者数据是从数字开始的), 则根据以下规则将结果数据转换为可能的最小数字dtype: 'integer'或'signed': 最小的有符号 'unsigned': 最小的无符号 'float': 最小的 由于此行为与从核心转换为数值的行为是分开的, 因此无论 向下转换期间引发的任何错误都会浮出水面。 此外,仅当结果数据的dtype的大小, 严格大于要强制转换为dtype的dtype时, 才会发生向下转换,因此, 如果检查的所有dtype都不满足该规范, 则不会对该数据执行向下转换。 0.19.0版中的新功能。 |
返回值: | ret : 解析成功时为numeric(数字)。 返回类型取决于输入。 如果为 则为 |
例子
采取单独的系列并转换为数字,当被告知时强制
>>> 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