パンダ マージ() 2 つのデータセットを 1 つにまとめ、共通の属性または列に基づいて行を配置するプロセスとして定義されます。これは、DataFrame オブジェクト間のすべての標準データベース結合操作のエントリ ポイントです。
構文:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
パラメーター:
- 「one_to_one」または「1:1」: マージ キーが左右のデータセットの両方で一意であるかどうかを確認します。
- 'one_to_many' または '1:m': マージ キーが左側のデータセットのみで一意であるかどうかを確認します。
- 'many_to_one' または 'm:1': マージ キーが正しいデータセット内でのみ一意であるかどうかを確認します。
- 'many_to_many' または 'm:m': 許可されますが、チェックは行われません。
DataFrameとマージするオブジェクトです。
実行されるマージのタイプ。
結合する列またはインデックス レベルの名前です。これは、左側と右側の両方の DataFrame で見つかる必要があります。 on が None で、インデックスをマージしない場合、これはデフォルトで両方の DataFrame の列の交差部分になります。
左上: ラベル、リスト、または配列のような
キーとして使用する左の DataFrame からの列またはインデックス レベルの名前です。 DataFrame の長さと同じ長さの配列を指定できます。
これは、キーとして使用する正しいデータフレームの列またはインデックス レベルの名前です。 DataFrame の長さと同じ長さの配列を指定できます。
true の場合、左側のデータフレームのインデックスを結合キーとして使用します。 MultiIndex (階層型) の場合、他の DataFrame の多くのキー (インデックスまたは一部の列) がレベルの数と一致する必要があります。
右側のデータフレームのインデックスを結合キーとして使用します。使い方は left_index と同じです。
True の場合、結果の DataFrame で結合キーを辞書順に並べ替えます。それ以外の場合、結合キーの順序は結合タイプ (how キーワード) によって決まります。
それぞれ左側と右側の DataFrame の列名に重なるように適用するサフィックスです。列は (False、False) 値を使用して、重複時に例外を発生させます。
True の場合、DataFrame のコピーを返します。
そうしないと、コピーを回避できます。
True の場合、出力 DataFrame に列を追加します。 _マージ ' には各行のソースに関する情報が含まれます。文字列の場合、各行のソースに関する情報を含む列が出力データフレームに追加され、その列には文字列の名前が付けられます。情報列はカテゴリ型として定義され、次の値を取ります。
指定されている場合は、以下に示すマージ タイプがチェックされます。
例1: キー上の 2 つの DataFrame をマージする
# import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right)
出力
id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6
例 2: 複数のキー上の 2 つの DataFrame をマージします。
import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id')
出力
id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6