【问题标题】:"None of [Int64Index , 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n ...... dtype='int64')] are in the [columns]"“没有 [Int64Index , 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n ...... dtype='int64 ')] 在 [列]"
【发布时间】:2019-07-23 18:24:57
【问题描述】:

我目前正在尝试对我的 pandas 数据框执行 KFold,以从 csv 读取 pandas 文件。不幸的是,我收到了错误:

"没有 [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]

【问题讨论】:

标签: pandas dataframe scikit-learn


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    转换为 numpy 使用:data_slice[0].values[train_index]

    试试:

    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

    【讨论】:

      【解决方案3】:

      试试iloc

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

      【讨论】:

        猜你喜欢
        • 2021-01-17
        • 2019-01-11
        • 2021-11-05
        • 2021-10-15
        • 1970-01-01
        • 1970-01-01
        • 2019-09-04
        • 2017-05-14
        • 1970-01-01
        相关资源
        最近更新 更多