ホームページ >バックエンド開発 >Python チュートリアル >異なる結合タイプを使用して Pandas DataFrame をマージするにはどうすればよいですか?

異なる結合タイプを使用して Pandas DataFrame をマージするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-27 13:17:11338ブラウズ

How Do Pandas DataFrames Merge Using Different Join Types?

Pandas Merging 101

マージについて

マージでは、共有キーに基づいて 2 つ以上の DataFrame を結合し、新しい DataFrame を作成します。 Pandas は、INNER、LEFT、RIGHT、FULL OUTER 結合など、さまざまなタイプのマージを提供します。

基本的な結合タイプ

a. INNER JOIN

  • 両方の DataFrame で共通のキーを共有する行を結合します。
  • 例:

    left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': np.random.randn(4)})
    right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': np.random.randn(4)})
    left.merge(right, on='key')

b. LEFT OUTER JOIN

  • 左側の DataFrame のすべての行を保持し、右側の DataFrame で欠落しているキーに NaN 値を追加します。
  • 例:

    left.merge(right, on='key', how='left')

c. RIGHT OUTER JOIN

  • 右側の DataFrame のすべての行を保持し、左側の DataFrame で欠落しているキーに NaN 値を追加します。
  • 例:

    left.merge(right, on='key', how='right')

d. FULL OUTER JOIN

  • 両方の DataFrame のすべての行を結合し、欠落しているキーに NaN 値を追加します。
  • 例:

    left.merge(right, on='key', how='outer')

左/右除外によるデータの除外結合

特定の行を除外する必要がある場合は、最初に LEFT/RIGHT OUTER JOIN を実行し、フィルタリングして他の DataFrame から行を除外することで、Left-Exclude JOIN または Right-Exclude JOIN を実行できます。

e。 Left-Exclude JOIN

  • 左側の DataFrame に存在する右側の DataFrame から行を除外します。
  • 例:

    (left.merge(right, on='key', how='left', indicator=True)
     .query('_merge == "left_only"')
     .drop('_merge', 1))

f.右除外 JOIN

  • 右 DataFrame に存在する左 DataFrame の行を除外します。
  • 例:

    (left.merge(right, on='key', how='right', indicator=True)
     .query('_merge == "right_only"')
     .drop('_merge', 1))

g。 ANTI JOIN

  • 両方の DataFrame に存在しない行を結合します。
  • 例:

    (left.merge(right, on='key', how='outer', indicator=True)
     .query('_merge != "both"')
     .drop('_merge', 1))

重複キーの処理列

出力でのキー列の重複を避けるために、マージ前に適切なインデックスをキーとして設定できます:

left3 = left2.set_index('keyLeft')
left3.merge(right2, left_index=True, right_on='keyRight')

複数の列のマージ

複数の列で結合するには、on (または left_on と right_on のように) のリストを指定します。

left.merge(right, on=['key1', 'key2'] ...)

追加のマージ関数

  • pd.merge_owned: 順序付けされた JOIN の場合。
  • pd.merge_asof: 近似の場合

を参照してください。より具体的な例とケースについては、マージ、結合、連結に関するドキュメントを参照してください。

以上が異なる結合タイプを使用して Pandas DataFrame をマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。