繁体   English   中英

在Python的循环内将数据框列表追加到一个

[英]Append a list of dataframes into one inside a loop in Python

假设我有一个数据框,我想拆分该数据框以执行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的数据框,然后继续进行。

有人可以帮我吗?

  training_data_list = df_array[:i] + df_array[i+1:]
  mDF=pd.DataFrame()
  for df in training_data_list:
        mDF.appened(df)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM