2016-07-27 10 views
0

バイナリ値を持つリストを作成するために使用した文字列値を持つネストリストがあります。私はモデルの予測子として変換リストを使用しました。リスト内の値をバイナリ値のパンダデータフレームにマップする方法

文字列値を持つリスト -

D = [["An", "Cn"], ["Bs", "Gt"], ["Cd", "El"], ["Cd", "Cn", "En"]] 

私は

D_list = D_tran.values.tolist() 
D_tran

An Bs Cd Cn El En Gt 
0 1 0 0 1 0 0 0 
1 0 1 0 0 0 0 1 
2 0 0 1 0 1 0 0 
3 0 0 1 1 0 1 0 

を得

D_tran = pd.Series([';'.join(i) for i in D]).str.get_dummies(';') 

付き

私はd_listのを得た:

[[1, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0, 0], [0, 0, 1, 1, 0, 1, 0]] 

私は、線形回帰モデルを作成するために、これを使用しています。しかし、私のモデルをテストするには、テストデータの文字列値をバイナリに変換する必要があります。私の質問は、予測変数の一部のみ、テストデータで、ご注意ください

R = [[0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 1, 0, 0], [1, 0, 0, 0, 0, 0, 0]] 

を得るために、D_listのフレームにRをマッピングする方法である

R = [["Bs"], ["Cd", "El"], ["An"]] 

- のようなテストデータが見えます現れる。

ありがとうございました。

答えて

1

あなたは本質的に1つのマイナーな修正と以前と同じ手順で操作を行うことができます。ダミーのデータフレームを作成した後、D_tranの列にreindexを使用します。

R_tran = pd.Series([';'.join(i) for i in R]).str.get_dummies(';') 
R_tran = R_tran.reindex(columns=D_tran.columns, fill_value=0) 
R_list = R_tran.values.tolist() 
+0

ありがとうございました。それは動作します! – achimneyswallow

関連する問題