パンダの結合またはマージ: 違いは何ですか?


join()関数とmerge()関数を使用して、2 つの pandas DataFrame を結合できます。

2 つの関数の主な違いは次のとおりです。

  • join()関数は、インデックスによって 2 つの DataFrame を結合します。
  • merge()関数は、指定した列に基づいて 2 つの DataFrame を結合します。

これらの関数は、次の基本構文を使用します。

 #use join() to combine two DataFrames by index
df1. join (df2)

#use merge() to combine two DataFrames by specific column name
df1. merge (df2,on=' column_name ')

インデックスによって 2 つの DataFrame を結合することがわかっている場合は、 join()関数を使用して入力の手間を省くことができます。

以下の例は、各機能の実際の使用方法を示しています。

例 1: join() 関数の使用方法

次のコードは、 join()関数を使用して 2 つの DataFrame を結合する方法を示しています。

 import pandas as pd

#create two DataFrames
df1 = pd. DataFrame ({' name ': ['A', 'B', 'C'], ' points ': [8, 12, 19]}). set_index (' name ')
df2 = pd. DataFrame ({' name ': ['A', 'B', 'C'], ' steals ': [4, 5, 2]}). set_index (' name ')

#view two DataFrames
print (df1); print (df2)

      steal points
name name
A 8 A 4
B 12 B 5
C 19 C 2

#use join() function to join together two DataFrames
df1. join (df2)

	steal points
name		
At 8 4
B 12 5
C 19 2

デフォルトでは、 join()関数はインデックス列を使用して 2 つの DataFrame を結合しました。

例 2: merge() 関数の使用方法

次のコードは、 merge()関数を使用して 2 つの DataFrame を結合する方法を示しています。

 import pandas as pd

#create two DataFrames
df1 = pd. DataFrame ({' name ': ['A', 'B', 'C'], ' points ': [8, 12, 19]}). set_index (' name ')
df2 = pd. DataFrame ({' name ': ['A', 'B', 'C'], ' steals ': [4, 5, 2]}). set_index (' name ')

#view two DataFrames
print (df1); print (df2)

      steal points
name name
A 8 A 4
B 12 B 5
C 19 C 2

#use join() function to join together two DataFrames
df1. merge (df2, on=' name ')

	steal points
name		
At 8 4
B 12 5
C 19 2

merge()関数はまったく同じ結果を返しましたが、「name」列を使用して DataFrame に結合するようにパンダに明示的に指示する必要があることに注意してください。

追加リソース

join()関数とmerge()関数の完全なオンライン ドキュメントは次の場所にあります。

join() 関数のドキュメント
merge() 関数のドキュメント

次のチュートリアルでは、パンダで他の一般的な機能を実行する方法を説明します。

Pandas DataFrame に行を追加する方法
Pandas DataFrame にヘッダー行を追加する方法
Pandas DataFrame の最初の行を取得する方法
Pandas DataFrame から最初の列を取得する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です