2016-06-21 8 views
-5

2つのパンダデータフレームで構成される大きなデータセットを扱っています。その1つは計測器から得られた測定値であり、もう1つは各測定値に存在する変数である。目標は、いくつかの教師付き学習方法を使用して、測定値が与えられた変数を予測することです。 scikit learnのランダムフォレスト分類器など、私が経験した教師付き学習方法で、複数の変数を 'ラベル'またはy値として使用する方法を見つけられませんでした。パンダのデータフレームで同様の行を識別してラベルを付ける方法

回避策として、本質的に同じ行を示す新しい列を作成することで、一度に1つまたは2つの変数のみを予測しようとしています。あなたがする方法を知っている場合は

c  
0 1 
1 2 
2 1 
3 3 
4 4 
5 2 
6 1 
7 5 
8 6 
9 3 

:私が欲しいもの

a b 
0 1 103 
1 6 103 
2 1 103 
3 2 2 
4 3 103 
5 6 103 
6 1 103 
7 5 103 
8 1 2 
9 2 2 

:私は実際に私がで始まるどのような学習方法

に2を表し、1つの変数のみで養うことができますこの方法複数のラベルやy変数を持つ教師あり学習もあり、それは非常に役に立ちます。

+2

ここであなたが何を求めているかはかなり不明です。あなたの問題を少し詳しく説明するまで、あなたは良い答えを得ることはまずありません。 – mgilson

+0

ようこそスタックオーバーフロー。これは、**私たちがコードを書いている*サービスではありません。努力をしなければなりません。 – linusg

答えて

0

あなたの質問には本当に説明が必要ですが、MIAなので先に前提します。

の仮定

  • 左の列には、リストのリストから来ています。私はその名前を "alist_oflists"と名づけます。
  • 一意の内部リストが見つかるたびに、新しい整数型の識別子がその属性に割り当てられます。
  • 出力は単純にリストのリストになります。内側のものは、以前に見つかったIDを含む単一のアイテムリストです。 2つのリストの順序は一致する必要があります。

alist_oflists = [[1, 1000], [2, 10], [2, 100], [2, 10], [3, 1000], [2, 100], [2, 10]] 

# we need tuples instead of lists cause lists are not hashable (will be used as dict keys) 
alist_oftuples = [tuple(x) for x in alist_oflists] 

print(alist_oftuples) # prints:[(1, 1000), (2, 10), (2, 100), (2, 10), (3, 1000), (2, 100), (2, 10)] 

a_dict = {} 
i = 1 
for items in alist_oftuples: 
    if items in a_dict.keys(): 
     continue 
    else: 
     a_dict[items] = i 
     i += 1 

i_wanna_see_results = [] 
for item in alist_oftuples: 
    i_wanna_see_results.append(a_dict[item]) 

print(i_wanna_see_results) # prints: [1, 2, 3, 2, 4, 3, 2] 

あなたが持っていると思った何本か?

関連する問題