Pandas での範囲ベースの結合の最も効果的な方法
パンダのデータフレームを操作する場合、範囲ベースの結合 (マージ) を実行する必要があります。 )は一般的なタスクです。これに対処するために、さまざまなアプローチが提案されていますが、それぞれに独自の利点と欠点があります。ただし、最もエレガントで効率的な方法は、numpy ブロードキャストを利用することです。
データフレーム A と B を考えてみましょう。ここでの目標は、A_value が B_low と B_high で指定された範囲内にあるという条件に基づいてそれらを内部結合することです。
これを実現するには、numpy の機能を活用して、A_value の各要素が範囲基準を満たしているかどうかを確認します。これは、B の範囲の下限と上限 (B_low と B_high) に対して A_value の値をブロードキャストすることで実現されます。
結果は 2 つの配列 i と j になります。ここで、i は一致する A_value のインデックスを保持します。 A の要素、j は B の対応するインデックスを保持します。これらのインデックスを組み合わせることで、両方のデータフレームから目的の行を取得し、それらを連結してマージされたデータフレームを作成できます。
このアプローチの更新されたコードは次のとおりです。 :
<code class="python">import numpy as np a = A.A_value.values bh = B.B_high.values bl = B.B_low.values i, j = np.where((a[:, None] >= bl) & (a[:, None] <= bh)) pd.concat([ A.loc[i, :].reset_index(drop=True), B.loc[j, :].reset_index(drop=True) ], axis=1)</code>
このメソッドは効率的なソリューションを提供するだけでなく、内部結合と左結合の両方を適切に処理します。パラメーターを調整することで、さまざまな結合シナリオに簡単に適応させることができます。
以上がNumpy ブロードキャストを使用してパンダで範囲ベースの結合を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。