为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2023-08-08 15:54:06
我正在实施金融机器学习的进展,以获得 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 数据帧格式以供交叉验证器检查。谁能帮助我理解为什么会出现该错误?
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

发生此错误的原因是 Purged K Fold 需要索引值是唯一的。如果有两个索引('opendatetime')相等,则在分割数据的不同分区时,会出现错误。

解决方案是检查是否存在具有相同索引的行。如果您将这些相同出现次数的索引值更改为不同,那么它就有效!


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信