logo

Python で 2 つのデータフレームを結合する方法 - Pandas

パンダ

Pandas は、Python プログラミング言語でリレーショナル データを操作するために使用される Python の組み込みライブラリです。リレーショナル データの操作に役立つ関数とデータ構造が多数あります。

データが行と列の形式で保存されている場合、または 2 次元データは通常、パンダではデータフレームと呼ばれます。

2 つのデータフレームがある場合、パンダの助けを借りて、それらを結合したり、単一のデータフレームにマージしたりできます。 Pandas は、2 つの異なるデータフレームのデータを結合するためのセット ロジックと、それらを比較するためのロジックを提供します。

1. concat()関数の使用

Python では、Pandas の concat() 関数を使用して 2 つのデータフレームを連結できます。データを行方向または列方向に連結できます。この関数は、1 つの軸 (行または列) 上のデータをマージし、別の軸 (別のインデックス) で設定されたロジックを実行します。

例:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'DEF', 'GHI'], 'Marks':[65,69,96,89]}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'Name': ['XYZ', 'TUV', 'MNO', 'JKL'], 'Marks':[56,96,69,98]}) frames = [dataFrame1, dataFrame2] result = pd.concat(frames) display(result) 

出力:

Python で 2 つのデータフレームを結合する方法 - Pandas

説明:

上記のコードでは、最初に Pandas ライブラリをファイルにインポートしました。次に、各データフレームに 3 列と 4 行が含まれる 2 つのデータフレームを作成しました。次に、これら 2 つのデータフレームを行ごとに連結する concat 関数を使用し、display 関数を使用してこれを画面に出力しました。

2.パンダでの結合の使用

共通の属性に基づいて 2 つのテーブルを結合するデータベースの結合の概念を理解しました。同じ方法がデータフレームの連結にも適用できます。単純な concat() メソッドでは、すべての行を相互にマージし、新しいデータフレームを作成しました。結合では、テーブルに対して実行する結合のタイプ (内部結合か外部結合か) を定義します。内部結合 (交差) または外部結合 (ユニオン) のいずれのタイプの結合も、結合属性で定義されます。

例:

スキャナJavaをインポートする
 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=1, join='inner') display(result) 

出力:

Python で 2 つのデータフレームを結合する方法 - Pandas

説明:

上記のコードには、2 つの列と 4 つの行を含む 2 つの daraframe があります。両方のデータフレームには異なる列名があり、concat() 関数では交差部分を取得する内部結合を使用しています。

軸属性では値 1 を初期化したので、データ全体を取得しました。

例:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'],'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

出力:

サンプルJavaコード
Python で 2 つのデータフレームを結合する方法 - Pandas

共通の属性がなく、内部結合が適用されたため、出力として空のデータフレームが得られました。両方のデータフレームに共通の属性がある場合:

例:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

出力:

Python で 2 つのデータフレームを結合する方法 - Pandas

説明:

上記のコードには、共通の属性「id」が 1 つあるため、データフレームは共通の属性のみに基づいて作成されます。

3. append()メソッドの使用

concat() メソッドの代わりに、append() メソッドを使用できます。この append() メソッドは、データフレームの 1 つに適用されます。

例:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'City': ['JAIPUR', 'MANALI', 'NOIDA', 'LUCKNOW']}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['MUMBAI', 'UDAIPUR', 'RISHIKESH', 'KASHMIR']}) # append method result = dataFrame1.append(dataFrame2) display(result) 

出力:

Python で 2 つのデータフレームを結合する方法 - Pandas

説明:

上記のコードでは、append メソッドを使用して 2 つのデータフレームをマージしました。