“IndexError:.iloc 需要数字索引器,在 python 中得到了

我正在实施金融机器学习的进展,以获得 Python 交叉验证的分数。我的代码是下一个:


cv = PurgedKFold(n_splits = 10,

             samples_info_sets = pd.Series(train['close_datetime'].values, index = train['opendatetime'].values),

             pct_embargo = 0.02)


scores = ml_cross_val_score(classifier = classifier,

                        X = X, y = y, cv_gen = cv)

问题是,当我运行最后一个命令行时,出现下一个错误:


IndexError: .iloc requires numeric indexers, got [array([False, False, False, ..., False, False, False])

 array([False, False, False, ..., False, False, False])

 array([False, False, False, ..., False, False, False]) ...

 array([False, False, False, ...,  True, False, False]) 8428

 array([False, False, False, ..., False, False,  True])]

我的代码出了问题,也许我配置了错误的 X 和 y 数据帧格式以供交叉验证器检查。谁能帮助我理解为什么会出现该错误?


鸿蒙传说
浏览 205回答 1
1回答

慕的地6264312

发生此错误的原因是 Purged K Fold 需要索引值是唯一的。如果有两个索引('opendatetime')相等,则在分割数据的不同分区时,会出现错误。解决方案是检查是否存在具有相同索引的行。如果您将这些相同出现次数的索引值更改为不同,那么它就有效!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python