"IndexError: .iloc requires numeric indexers, got [array([False, False, False, ..." in python. Why is it failing?
"IndexError: .iloc requires numeric indexers, got [array([False, False, False, ..." in python. Why is it failing?
我正在实施金融机器学习的进展,以便在 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 数据帧格式以供交叉验证器检查。谁能帮助我理解为什么会出现该错误?
经过一番尝试,我找到了解决办法。发生此错误是因为 Purged K Fold 需要索引值是唯一的。如果有两个索引('opendatetime')相等,在拆分数据的不同分区时,会报错。
解决方法是检查是否有具有相同索引的行。如果您将这些相同事件的索引值更改为它们之间的不同,它会起作用!
我正在实施金融机器学习的进展,以便在 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 数据帧格式以供交叉验证器检查。谁能帮助我理解为什么会出现该错误?
经过一番尝试,我找到了解决办法。发生此错误是因为 Purged K Fold 需要索引值是唯一的。如果有两个索引('opendatetime')相等,在拆分数据的不同分区时,会报错。
解决方法是检查是否有具有相同索引的行。如果您将这些相同事件的索引值更改为它们之间的不同,它会起作用!