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