[英]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.