在Python中将数据帧列表附加到循环内

时间:2016-02-08 18:34:28

标签: python pandas

假设我有一个数据帧,我想拆分数据帧以执行K折叠交叉验证。我知道有可用的包可以做到这一点。但我正在尝试编写代码以便学习一些东西。我已经尝试了以下代码,其中我获取K的参数并将数据拆分为K部分并将其保存到df_array。现在,对于每次迭代,我希望有一个作为测试并保留为训练数据。我可以在validation_data变量中替换一个作为测试。但是训练数据包含剩余9个数据帧的列表。我想将其附加到一个,以便我可以将我的模型应用到它。有人可以帮我这么做吗?

df=pd.DataFrame(range(0,10))

def k_fold_cross_validation(data,K):
    data=data.sample(frac=1)
    df_array = [ data[i::K]for i in xrange(K)]
    print df_array
    for i,val in enumerate(df_array):
        validation_data = pd.DataFrame(df_array[i])
        print "validation "
        print validation_data
        training_data_list = df_array[:i] + df_array[i+1:]
        print "training"
        print training_data_list

 k_fold_cross_validation(df,10)

我的输出应该通过验证0训练作为具有1,2,3,... 9值的数据帧。并且对于下一次迭代,验证1和训练作为具有0,2,3,... 9的数据帧并且继续。

有人可以帮我这么做吗?

1 个答案:

答案 0 :(得分:0)

A <- numeric(m*n)
for(i in 1:n) {
  for (j in 1:n) {
    A[((i-1)*m+1):(i*m)]= A[((i-1)*m+1):(i*m)] + abs(d_Y-d_X[i,j])%*%U[((j-1)*m+1):(j*m)]
  }
}

mDF现在将包含DF列表中的所有数据