一、代码报错
最近在跑代码的时候:
# Total number of people in the family
data["Family_Size"] = data['Marital_Status'] + data['Kidhome'] + data['Teenhome']
报错内容如下:
TypeError: Object with dtype category cannot perform the numpy op add
我们的数据集如下所示:

二、改错
这个错误是因为在执行 data['Marital_Status'] + data['Kidhome'] + data['Teenhome'] 操作时,其中一个或多个列的数据类型为 category,而 numpy 不支持在 category 类型的数据上执行加法操作。
解决这个问题的方法是将涉及到的 category 类型的列转换为其他数值类型,例如整数类型,然后再执行加法操作。可以使用 astype() 方法将 category 类型的列转换为整数类型,如下所示:
data['Marital_Status'] = data['Marital_Status'].astype(int) # 将 Marital_Status 列转换为整数类型
data['Family_Size'] = data['Marital_Status'] + data['Kidhome'] + data['Teenhome'] # 执行加法操作
这样,将 Marital_Status 列从 category 类型转换为整数类型后,再执行加法操作,就不会出现 TypeError 错误。请注意,转换数据类型时需要谨慎,确保不会丢失或错误地处理数据。

顺利完成!
文章讲述了在运行代码时遇到TypeError,因为尝试对category类型的数据执行加法操作,numpy不支持此类操作。解决方案是将category列转换为整数类型,如通过astype(int)方法,从而避免错误并能执行加法计算。
1474

被折叠的 条评论
为什么被折叠?



