2016-11-21 43 views
2

我有一個訓練數據框已被清除,並具有原始測試數據框所具有的變量子集。我想創建一個新的測試數據框,只保留訓練數據框的列。Pandas使用訓練數據框列選擇測試數據幀列

例如,

train.columns=['A','D','E','G'] 

test.columns=['A','B','C','D','E','F','G'] 

如何創建新的test_df是隻保留train.columns?

+0

的工作,謝謝! – yogz123

+0

@ ctj232如果沒有至少15的代表,他們無法贊成。如果你提出了他們的問題,他們會有必要的代表讓你高興。 – piRSquared

+0

好點,謝謝! @piRSquared – ctj232

回答

3

假設每個DataFrame具有相同名稱的列,那麼你可以簡單地從測試DataFrame使用培訓DataFrameDataFrame.columns屬性和[]語法選擇列。

這裏是一個工作示例:

$ train = pd.DataFrame([[0,1,2,3]],columns=['A','D','E','G']) 
$ train 
    A D E G 
0 0 1 2 3 

$ test = pd.DataFrame([[0,1,2,3,4,5,6]],columns=['A','B','C','D','E','F','G']) 
$ test 
    A B C D E F G 
0 0 1 2 3 4 5 6 

$ test_df = test[train.columns] 
$ test_df 
    A D E G 
0 0 3 4 6 
+0

是的,工作!謝謝!如果它是一個numpy數組而不是數據框,你會知道如何做同樣的事情嗎? – yogz123

+0

如果你仍然可以訪問'DataFrame',那麼它就像'test_df.values'一樣簡單,但我不確定如何從'ndarray'直接做到這一點。如果你真的需要做後者,那麼我認爲你仍然可以按照[文檔](https://docs.scipy.org/doc/numpy/reference/arrays.indexing)使用'[]'索引語法。 HTML)。然而,如果你想根據'str'類標籤選擇列,那麼我認爲你應該繼續使用'DataFrame'而不是'ndarray'。雖然,也許我只是想念你的問題的背景。 – ctj232

相關問題