首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:-:PyCaret回归中不支持的操作数类型:‘str’和‘int’

TypeError:-:PyCaret回归中不支持的操作数类型:‘str’和‘int’
EN

Stack Overflow用户
提问于 2020-11-25 08:29:55
回答 2查看 1.3K关注 0票数 2

我阅读了关于这个主题的多个可用的问题,但仍然不理解我的问题。

我正在尝试构建一个回归,使用PyCaret

代码语言:javascript
复制
from pycaret.regression import *
fooPy = setup(data = foo, target = 'pts', session_id = 123)

我收到错误:

代码语言:javascript
复制
TypeError: unsupported operand type(s) for +: 'int' and 'str'

不确定问题在哪里,因为我在结构中没有看到任何字符串:

代码语言:javascript
复制
pts_500                   float64
pts_500_p                 float64
OBP_avg                   float64
SLG_avg                   float64
SB_avg                    float64
RBI_avg                   float64
R_avg                     float64
home                      int64
first_time_pitcher        int32
park_ratio_OBP            float64
park_ratio_SLG            float64
order                     float64
SO_avg_p                  float64
pts_500_parkadj_p         float64
pts_500_parkadj           float64
SLG_avg_parkadj           float64
OPS_avg_parkadj           float64
SLG_avg_parkadj_p         float64
OPS_avg_parkadj_p         float64
pts_BxP                   float64
SLG_BxP                   float64
OPS_BxP                   float64
whip_SO_BxP               float64
whip_SO_B                 float64
whip_SO_B_parkadj         float64
order                     float64
ops x pts_500 order15     float64
ops x pts_500 parkadj     float64
ops23 x pts_500           float64
ops x pts_500 orderadj    float64
whip_p                    float64
whip_SO_p                 float64
whip_SO_parkadj_p         float64
whip_parkadj_p            float64
pts                       float64
dtype: object

homefirst_time_pitcher是整数。

完全错误如下所示:

谢谢你的建议!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-25 20:09:31

我自己找到了答案,这是非常琐碎和令人讨厌的。

数据集中包含了两次Order变量。我检查了相关性,得到了相同变量之间的1.0相关。

代码语言:javascript
复制
# Check correlation
cor = df[features].corr()
cor.loc[:,:] = np.tril(cor, k=-1) 
cor = cor.stack()
cor[(cor > 0.7) | (cor < -0.7)]
票数 3
EN

Stack Overflow用户

发布于 2022-02-25 16:11:50

只是想补充一下阿纳金·雪克的答案。此错误(带有混淆的错误消息)是由重复的列名引起的。

可以简单地通过删除一个重复的列名来解决这个问题,要么重命名(例如df.rename),要么删除(例如df.drop)列。

下面包含了一个再现错误的示例(使用pycaret 2.3.6):

代码语言:javascript
复制
# load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')

# artificially create 2 columns with same name, Number of times pregnant
diabetes.columns = ['Number of times pregnant',
       'Number of times pregnant',
       'Diastolic blood pressure (mm Hg)', 'Triceps skin fold thickness (mm)',
       '2-Hour serum insulin (mu U/ml)',
       'Body mass index (weight in kg/(height in m)^2)',
       'Diabetes pedigree function', 'Age (years)', 'Class variable']

# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')

这将以下面的错误消息结束:

代码语言:javascript
复制
TypeError: unsupported operand type(s) for +: 'int' and 'str'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65000982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档