Pandas のさまざまな種類の結合

Pandas のさまざまな種類の結合

Pandas モジュールには、データフレームに対して結合、連結、削除、追加などのさまざまな操作を実行するためのさまざまな機能が含まれています。この記事では、Pandas で実行できるさまざまな種類の結合操作について説明します。 データフレーム。結合には 5 種類あります パンダ

  • 内部結合
  • 左外部結合
  • 右外部結合
  • 完全な外部結合または単純な外部結合
  • インデックス結合

さまざまなタイプの結合を理解するために、まず 2 つの DataFrame を作成します。 ある そして b

データフレーム a:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # printing the dataframe> a>

出力:

データフレーム b:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # printing the dataframe> b>

出力:

Pandas の結合の種類

これら 2 つのデータフレームを使用して、さまざまな種類の結合を理解します。

パンダ 内部結合

内部結合は、作業する最も一般的なタイプの結合です。共通の特性を持つ行のみを含むデータフレームを返します。これは 2 つのセットの交差に似ています。

パンダの内部結合

例:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # inner join> df> => pd.merge(a, b, on> => 'id'> , how> => 'inner'> )> # display dataframe> df>

出力:

パンダ 左結合

左外部結合では、最初のデータフレームのキーが 2 番目のデータフレームで見つかるかどうかに関係なく、最初のデータフレームのすべてのレコードが表示されます。一方、2 番目のデータフレームの場合は、最初のデータフレームで見つかる 2 番目のデータフレームのキーを持つレコードのみが表示されます。

左結合 例:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # left outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'left'> )> # display dataframe> df>

出力:

パンダ 右外部結合

右結合の場合、2 番目のデータフレームのすべてのレコードが表示されます。ただし、2 番目のデータフレームで見つかる最初のデータフレームのキーを持つレコードのみが表示されます。

パンダの右外部結合

例:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # right outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'right'> )> # display dataframe> df>

出力:

パンダ 完全外部結合

完全外部結合は、左側のデータフレームからすべての行を返し、右側のデータフレームからすべての行を返し、可能な場合は行を、その他の場所では NaN と照合します。ただし、データフレームが完了している場合は、同じ出力が得られます。

パンダの完全外部結合

例:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # full outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'outer'> )> # display dataframe> df>

出力:

パンダのインデックス結合

インデックス上のデータフレームをマージするには、 left_index そして right_index 引数を True に設定すると、両方のデータフレームがデフォルトの内部結合を使用してインデックス上でマージされます。

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # index join> df> => pd.merge(a, b, left_index> => True> , right_index> => True> )> # display dataframe> df>

出力: