データフレームを操作する場合、多くの場合、特定の基準に基づいてそれらを結合する必要があります。この場合の目的は、2 つのデータフレーム df1 と df2 をインデックスによってマージすることです。
デフォルトでは、Python の Pandas ライブラリの merge() 関数は列ベースのマッチングを期待します。ただし、特定のパラメーターを使用してインデックスのマージが可能です。
一致するインデックスを持つ行のみが保持される内部結合を実行するには、次のコードを使用します。
<code class="python">pd.merge(df1, df2, left_index=True, right_index=True)</code>
この操作により、次の出力:
id | begin | conditional | confidence | discoveryTechnique | concept |
---|---|---|---|---|---|
278 | 56 | false | 0.00 | 1 | A |
421 | 18 | false | 0.00 | 1 | B |
または、join() メソッドを使用して左結合を実行できます:
<code class="python">df1.join(df2)</code>
この結果は次のようになります:
id | begin | conditional | confidence | discoveryTechnique | concept |
---|---|---|---|---|---|
278 | 56 | false | 0.00 | 1 | NaN |
421 | 18 | false | 0.00 | 1 | B |
2 | 56 | false | 0.00 | 1 | NaN |
5 | 37 | false | 0.20 | 1 | NaN |
最後に、concat() 関数を使用して外部結合を実現できます。
<code class="python">pd.merge(df1, df2, left_index=True, right_index=True)</code>
結果のデータフレームには、両方の入力データフレームのすべての行が含まれます。
id | begin | conditional | confidence | discoveryTechnique | concept |
---|---|---|---|---|---|
278 | 56 | false | 0.00 | 1 | A |
421 | 18 | false | 0.00 | 1 | B |
2 | 56 | false | 0.00 | 1 | NaN |
5 | 37 | false | 0.20 | 1 | NaN |
8 | 36 | false | 0.50 | 1 | NaN |
NaN | 37 | false | 0.30 | 2 | NaN |
マージすることを覚えておいてください。インデックスの削除は一般的な方法ではないため、データの損失や整合性の問題を避けるために慎重に検討する必要があります。インデックスによるマージが避けられない場合、提供されているメソッドは、目的の結果を達成するための柔軟なオプションを提供します。
以上がPandasのインデックスに基づいて2つのデータフレームをマージする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。