pd.to_numeric

将参数转换为数字类型。

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

参数 描述
args 接受scalar, list, tuple, 1-d array, or Series类型
errors 有3种类型{‘ignore’, ‘raise’, ‘coerce’}, 默认为‘raise’
downcast {‘integer’, ‘signed’, ‘unsigned’, ‘float’} , default None,默认返回float64int64

注意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类型生效
posted @   晓尘  阅读(3087)  评论(2编辑  收藏  举报
编辑推荐:
· 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搭建本

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示