4
私はattr1
という名前のいくつかの列を持つ2つのデータフレーム、A
とB
を言う、attr2
、attrN
を持っています。 の各行が属性間の最短距離を持つB
の行とマージされるように、データフレームをマージしたいと思います。マージ時にB
の行を繰り返すことができます。以下のマージされたテーブルにやってのマージパンダのデータフレーム(複数可)
M | attr1_A attr1_B
0 | 10 15
1 | 20 15
2 | 30 27
私の現在の方法が得られるはず絶対差の距離|A.attr1 - B.att1|
A | attr1 B | attr1
0 | 10 0 | 15
1 | 20 1 | 27
2 | 30 2 | 80
を使用して、これらの2つのテーブルをマージ
例えば(1つの属性で物事をシンプルに保つために)、これは遅く、A
の各行とB
の各行を比較することに基づいていますが、合併のためのインデックスを保持しなければならないためコードも明確ではありません。より良い解決策を思いつきません。
上記のようにpandasを使用してマージを実行するにはどうすればよいですか?ここで役立つ便利なメソッドや関数はありますか?
EDIT:データフレームには距離計算には使用されないが、併合されなければならない他の列もあります。次のようにあなたがそれを行うことができ
これを正しく取得したら、まずAのすべての行がBのすべての行で計算され、指定された条件に一致しない行が除外されます。確かに私のソリューションよりも読みやすく、ありがとう! – AkiRoss
@AkiRossはい、AとBのデカルト積を作成し、フィルタリングする基準を使用します。 –
非常に興味深い解決策! – MaxU