パンダ: 異なる列名を持つ 2 つの dataframe をマージする方法


次の基本構文を使用して、異なる列名を持つ 2 つのパンダ データフレームをマージできます。

 p.d. merge (df1, df2, left_on=' left_column_name ', right_on=' right_column_name ')

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

例: 列名が異なる 2 つの Pandas DataFrame をマージする

次の 2 つのパンダ DataFrame があると仮定します。

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' points ': [4, 4, 6, 8, 9, 5]})

#view DataFrame
print (df1)

  team points
0 to 4
1 B 4
2 C 6
3 D 8
4 E 9
5 F 5

#create second DataFrame
df2 = pd. DataFrame ({' team_name ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' rebounds ': [12, 7, 8, 8, 5, 11]})

#view DataFrame
print (df2)

  team_name rebounds
0 to 12
1 B 7
2 C 8
3 D 8
4 E 5
5 F 11

次の構文を使用して、最初のデータフレームのチーム列と 2 番目のデータフレームのチーム名列を使用して内部結合を実行できます。

 #merge DataFrames
df3 = pd. merge (df1, df2, left_on=' team ', right_on=' team_name ')

#view result
print (df3)

  team points team_name rebounds
0 A 4 A 12
1 B 4 B 7
2 C 6 C 8
3 D 8 D 8
4 E 9 E 5
5 F 5 F 11

結合に使用した 2 つの列名が各データフレームで異なっていたとしても、内部結合を正常に実行できることに注意してください。

この列の値はチーム列の値と一致するため、次のコードを使用して最終的にマージされたデータフレームからteam_name列を削除することもできることに注意してください。

 #drop team_name column
df3. drop (' team_name ', axis= 1 , inplace= True )

#view updated DataFrame
print (df3)

  team points rebounds
0 to 4 12
1 B 4 7
2 C 6 8
3 D 8 8
4 E 9 5
5 F 5 11

team_name列が DataFrame から削除されていることに注意してください。

関連: Pandas で列を削除する方法 (4 つの例)

追加リソース

次のチュートリアルでは、他の一般的なパンダのタスクを実行する方法について説明します。

Pandasで列の順序を変更する方法
Pandas で列の名前を変更する方法
Pandas で列を名前で並べ替える方法

コメントを追加する

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