2017-05-14 9 views
0

各キーがリスト(100行5列のCSVファイル)を参照する5つのキーを持つ辞書があります。リストの各行は、人のデータを指し示しています。私は各リストの同様の行を抽出し、新しいリストまたは配列に入れたいと思います。ですから、最終的には、100個のリスト/アレイを用意して、各リスト/アレイにユーザーのデータが含まれるようにする必要があります。そして、機械学習などの実験をしたいと思います。辞書から類似したデータを抽出して新しいリストまたは配列に入れる

これは私の例です:

My_dict={0,1,2,3} 

0={id,var1,var2,var3 
    User1,med,high,low 
    User2,med,low,low 
    …,…,..,.., 
    User100,hih,low,med} 

1={id,var1,var2,var3 
    User1,high,med,low 
    User2,high,med,low 
    …,…,..,.., 
    User100,low,low,med} 

2={id,var1,var2,var3 
    User1,low,med,low 
    User2,med,med,low 
    …,…,..,.., 
    User100,med,low,med} 

は、だから私は、リストまたは私は試すことができ、配列の配列のリストを持っていると思います。このような何か:

User1={id,var1,var2,var3 
    User1,med,high,low 
    User1,high,med,low 
    User1,low,med,low 
} 

User2={d,var1,var2,var3 
    User2,med,high,low 
    User2,high,med,low 
    User2,low,med,low 
} 
+0

私はpythonで少し新しいですし、この結果を得るために簡単なコードを探しています。 –

答えて

1
input_data = {"0":[["U1","med","low","high"],["U2","low","low","high"],["U3","high","low","high"]], "1": [["U1","med","low","high"],["U2","low","low","high"],["U3","high","low","high"]]} 


# Assuming that above kind of data you have then below dict will be your output 

users_dict = dict() 
for key, users in input_data.iteritems(): 
    for user in users: 
     users_dict.setdefault(user[0], []).append(user) 
+0

私はあなたが何か間違っている場合は私を修正します – pramod

+0

上記のコードの印刷(users_dict.keys())を実装した後にキーを印刷すると何かが間違っているように見えますが、これは私にこの結果をもたらします:dict_keys(['U'、 ' '、'、 '、'、 '、'、 '、'、 '、'、 '、'、 '、'、 'もう一つは、このコードは1つのリストだけです。 My_dict = {0,1,2,3}のように辞書に複数のリストがあるので、すべてのリストを使ってそれを実行し、すべてのユーザーデータを別の辞書、例えばU1、..、U100に抽出する必要があります。 –

+0

input_dataには、好きなだけ多くのキーを入れることができます。たとえば、現在のキーは「0」です。あなたは今、私は入力データにもう一つのキーを追加しました – pramod

関連する問題