pd.to_numeric
将参数转换为数字类型。
默认返回dtype
为float64
或int64
, 具体取决于提供的数据。使用downcast
参数获取其他dtype
。
参数 | 描述 |
---|---|
args | 接受scalar, list, tuple, 1-d array, or Series类型 |
errors | 有3种类型{‘ignore’, ‘raise’, ‘coerce’}, 默认为‘raise’ |
downcast | {‘integer’, ‘signed’, ‘unsigned’, ‘float’} , default None,默认返回float64 或int64 |
注意downcast的意思是向下转换
errors中参数的解释:
'raise'参数:无效的解析将引发异常
'corece'参数:将无效解析设置为NaN
'ignore'参数:无效的解析将返回输入
downcast中参数的意义:
默认的None就是不进行处理
'integer'和'signed':最小的有符号整数dtype(最小值np.int8)
'unsigned':最小的unsigned int dtype(np.uint8)
'float':最小的float dtype(np.float32)
返回值:如果解析成功,则为数字。其中返回类型取决于输入。如果为Series,则为Series,否则为ndarray。
数据集构建代码如下:
import pandas as pd
import numpy as np
s = pd.Series(['apple', '1.0', '2','2019-01-02',1, False,None,pd.Timestamp('2018-01-05')])
比如对于如下的数据:
执行raise会报错,因为该数据里面有非数字,结果如下:
执行ignore结果如下:
执行coerce结果如下:
向下转换期间引发的任何错误都会浮出水面。此外,仅当结果数据的dtype的大小,严格大于要强制转换为dtype的dtype时,
才会发生向下转换,因此,如果检查的所有dtype都不满足该规范,则不会对该数据执行向下转换。
不理解可以试试就理解了,比如对该数据在'coerce'条件下执行integer会发现转换的是float。
数据转换还有astype的方法:
# astype中的error没有`coerce`选项,所以只适合`numeric`内部类型的转换,比如将int32转换为int64,int32转换为float32
# 而不适合在object,时间格式之间做转换,
s.astype('int32',errors='raise')
s.astype('int32',errors='ignore') # 对object无效,astype只能对numeric类型生效
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本