Pandas で左結合を行う方法 (例あり)


次の基本構文を使用して、パンダで左結合を実行できます。

 import pandas as pd

df1. merge (df2, on=' column_name ', how=' left ')

次の例は、この構文を実際に使用する方法を示しています。

例: Pandas で左結合を実行する方法

さまざまなバスケットボール チームに関する情報を含む、次の 2 つのパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                    ' points ': [18, 22, 19, 14, 14, 11, 20, 28]})

df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'G', 'H'],
                    ' assists ': [4, 9, 14, 13, 10, 8]})

#view DataFrames
print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14
4 E 14
5 F 11
6 G 20
7:28 a.m.

print (df2)

  team assists
0 to 4
1 B 9
2 C 14
3 D 13
4G 10
5:8 a.m.

次のコードを使用して左結合を実行し、最初のデータフレームのすべての行を保持し、2 番目のデータフレームのチーム列に基づいて一致するすべての列を追加できます。

 #perform left join
df1. merge (df2, on=' team ', how=' left ')

        team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0

左側の DataFrame ( df1 ) の各チームはマージされた DataFrame で返され、左側の DataFrame のチーム名に一致する右側の DataFrame ( df2 ) の行のみが返されます。

df1のチーム名と一致しないdf2の 2 つのチーム (チーム E と F) は、マージされたデータフレームのアシスト列にNaN値を返すだけであることに注意してください。

次の構文でpd.merge()を使用して、まったく同じ結果を返すこともできることに注意してください。

 #perform left join
p.d. merge (df1, df2, on=' team ', how=' left ')


        team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0

このマージされた DataFrame は前の例の DataFrame と一致することに注意してください。

:マージ関数の完全なドキュメントはここで見つけることができます。

追加リソース

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

Pandas でアンチ結合を実行する方法
Pandas で内部結合を実行する方法
Pandas でクロス結合を実行する方法

コメントを追加する

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