2016-11-21 4 views
2

トレーニングデータフレームがあり、元のテストデータフレームに含まれていた変数のサブセットがあります。トレーニングデータフレームにある列だけを保持する新しいテストデータフレームを作成したいと思います。例えばトレーニングデータフレーム列を使用してテストデータフレーム列を選択します

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

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

は、どのように私はtrain.columnsを保つ新しいtest_dfを作成するのですか?各DataFrameを想定し

+0

が働いて、ありがとうございました! – yogz123

+0

@ ctj232彼らは少なくとも15の担当者なしでupvoteすることはできません。あなたが質問をアップvした場合、彼らはあなたにupvoteするために必要な担当者を持っています。 – piRSquared

+0

良い点、ありがとう! @piRSquared – ctj232

答えて

3

は、同じ名前の列があり、その後、あなたは、単にトレーニングDataFrame[]構文のDataFrame.columnsプロパティを使用してテストDataFrameから列を選択することができます。ここで

は実施例である:

$ 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

はい、うまくいきました!ありがとうございました!それがデータフレームではなく、配列の数が少ない場合、同じことをする方法を知っていますか? – yogz123

+0

'DataFrame'にまだアクセスしているのであれば、' test_df.values'と同じくらい簡単ですが、 'ndarray'からまっすぐに私の頭の上から離れているのか分かりません。後者を本当に行う必要がある場合は、[docs](https://docs.scipy.org/doc/numpy/reference/arrays.indexing)に従って、[[] 'インデックス構文を引き続き使用できると思います。 html)。しかし、 'str'のようなラベルに基づいて列を選択しようとしているなら、' ndarray'ではなく 'DataFrame'で作業し続けるべきだと思います。しかし、多分私はあなたの質問の文脈を逃しているだけかもしれません。 – ctj232

関連する問題