まず、大量のデータがあり、3 つのユニットに分割されます:
リーリーたとえば、現在そのようなデータが 100 個あります。どうやって対処すればいいのでしょうか?
ステップ 1
私のアイデアは、辞書を通じて 1:n:1 を構築することです。
しかし、現状は。タイプがキーの場合、同じタイプがあった場合はどうすればよいですか?辞書キーが一意であるためです。
2 番目のステップでは、最初の値から 2 番目の値を取得します。最初の値が分からない場合、最初の値から 2 番目の値を取得するにはどうすればよいですか?
###ありがとう! ~
たとえば、次のようなデータが2つあります
リーリー
リーリー
これが私が望む結果です。つまり。 1: n: 1 は
Type: 最初の値: 2 番目の値を意味します実行可能な解決策があるかどうかわかりません
为情所困2017-05-18 10:57:26
最初の値: 最初の値が同じ型で一意である場合は、次の構造を試すことができます:
リーリー上記は、デフォルト値の作成は一意である必要があることを意味します字典
的字典mapping
, 然后用类型
和第一个值
分别作为索引的key, 我个人觉得, 在类型
和第一个值
的共同约束下, 找到的第二个值
、一意でない場合は、上書きするかリスト形式で存在するかを検討する必要があります
2 番目:
上で述べたデータ構造を使用する場合、最初の値が分からない場合は、mapping[value_type] をたどるだけで、その値が必要なものかどうかを判断できます
迷茫2017-05-18 10:57:26
1:n:1 とはどういう意味ですか?マッピング関係? しかし、これは重要ではありません。各データを 3 つのタプル (type、val1、val2) として書き込み、各データを配列 [];
に保存する方法があります。配列を作成するときは、typeDict = {type: [arrIdx]}、val1Dict={val1:[arrIdx]}、val2Dict={val2:[arrIdx]}の3つのdictを作成します
typeを使用してデータを検索したい場合は、 type に対応するすべてのレコードの場所を検索の typeDict を使用するだけです。
同様に、val1とval2も同じです。
typeA、val1=n を見つけたい場合は、typeDict、val1Dict から見つかった結果セットを交差するだけで済みます。
某草草2017-05-18 10:57:26
データ量が多い場合はmysqlやpandasなどのデータ処理に特化したデータベースを使った方が効率が良さそうです。 Pandas には専用の to_dict 関数もあります。