“没有[Int64Index,10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25,\ n ...... dtype ='int64 ')]在[栏]中

时间:2019-03-01 17:14:27

标签: pandas scikit-learn

我目前正在尝试对从csv读取熊猫文件的熊猫数据帧执行KFold。不幸的是我遇到了错误:

“无[Int64Index,10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25,\ n ...... dtype ='int64')]位于[各栏]“

这是我的代码:

def getSlicesOfData(read_csv):
    slice_training_data = read_csv[["player", "0", "1", "2", "3", "4", "5", "6", "7", "8"]]
    slice_prediction_data = read_csv[["best_move"]]
    return (slice_training_data, slice_prediction_data)

def getKFold(data_sliced):
    kf = KFold(n_splits=10, random_state=None, shuffle=False)
    return kf.split(data_sliced[0],data_sliced[1])
    #return TimeSeriesSplit(n_splits=10, max_train_size=9)

if __name__ == "__main__":
    read_csv = pd.read_csv('100games.csv')
    data_slice = getSlicesOfData(read_csv)
    for train_index, test_index in getKFold(data_slice):
        x_train, x_test = data_slice[0][train_index], data_slice[0][test_index]
        y_train, y_test = data_slice[1][train_index],data_slice[1][test_index]

尝试通过以下方法获取训练数据时,如果我做错了什么?

x_train, x_test = data_slice[0][train_index], data_slice[0][test_index]
            y_train, y_test = data_slice[1][train_index],data_slice[1][test_index]

2 个答案:

答案 0 :(得分:0)

您正在尝试对熊猫数据框执行K形折叠,这就是问题所在。尝试将数据结构从pandas更改为numpy,然后重新运行代码。最后,您可能需要将数据结构从numpy更改回pandas。

答案 1 :(得分:0)

使用data_slice[0].values[train_index]

转换为numpy

尝试:

if __name__ == "__main__":
    read_csv = pd.read_csv('100games.csv')
    data_slice = getSlicesOfData(read_csv)
    for train_index, test_index in getKFold(data_slice):
        x_train, x_test = data_slice[0].values[train_index], data_slice[0].values[test_index]
        y_train, y_test = data_slice[1].values[train_index], data_slice[1].values[test_index]

另请参阅:https://stackoverflow.com/a/51091177/5025009