我阅读了关于这个主题的多个可用的问题,但仍然不理解我的问题。
我正在尝试构建一个回归,使用PyCaret
from pycaret.regression import *
fooPy = setup(data = foo, target = 'pts', session_id = 123)我收到错误:
TypeError: unsupported operand type(s) for +: 'int' and 'str'不确定问题在哪里,因为我在结构中没有看到任何字符串:
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: objecthome和first_time_pitcher是整数。
完全错误如下所示:


谢谢你的建议!
发布于 2020-11-25 20:09:31
我自己找到了答案,这是非常琐碎和令人讨厌的。
数据集中包含了两次Order变量。我检查了相关性,得到了相同变量之间的1.0相关。
# Check correlation
cor = df[features].corr()
cor.loc[:,:] = np.tril(cor, k=-1)
cor = cor.stack()
cor[(cor > 0.7) | (cor < -0.7)]发布于 2022-02-25 16:11:50
只是想补充一下阿纳金·雪克的答案。此错误(带有混淆的错误消息)是由重复的列名引起的。
可以简单地通过删除一个重复的列名来解决这个问题,要么重命名(例如df.rename),要么删除(例如df.drop)列。
下面包含了一个再现错误的示例(使用pycaret 2.3.6):
# 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')这将以下面的错误消息结束:
TypeError: unsupported operand type(s) for +: 'int' and 'str'https://stackoverflow.com/questions/65000982
复制相似问题