TypeError: ufunc did not contain a loop with signature matching types dtype('U32')

本文详细解析了在数据处理过程中,尤其是从CSV文件导入数据并进行列间运算时,遇到object类型与int类型相加减导致的TypeError错误。通过实际案例展示了如何使用pd.to_numeric()方法将object类型转换为数值类型,以避免类型不匹配引发的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因:object类型和int类型相加减

解决方法:

此时的object类型可能是‘12.3’这样str格式的数字,如果要运算必须进行格式转换: 
可采用如下方法(pd.to_numeric()):

panel_info['input'] = pd.to_numeric(panel_info['input'])

参考:https://blog.youkuaiyun.com/m0_37477175/article/details/77887274

在数据处理过程中
比如从CSV文件中导入数据

data_df = pd.read_csv("names.csv")

在处理之前一定要查看数据的类型

data_df.info()

*RangeIndex: 891 entries, 0 to 890 

Data columns (total 12 columns): 
Name 891 non-null object 
Sex 891 non-null object 
Age 714 non-null float64 
SibSp 891 non-null int64 
Parch 891 non-null int64 
Ticket 891 non-null object 
Fare 891 non-null float64 
Cabin 204 non-null object 
Embarked 889 non-null object 
dtypes: float64(2), int64(5), object(5) 
memory usage: 83.6+ KB* 
以上object , int64, 以及 float64 便是数据的类型。 
如果我们需要对列数据进行相互之间的运算的吧,必须注意的一点是: 
两列的数据类型是否是相同的!! 
如果一个object类型与int64的类型相加,便会发生错误 
错误提示可能如下:

TypeError: ufunc 'add' not contain a loop with signature matching types dtype('<U32') dtype('<U32')  dtype('<U32')

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值