簡體   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