2017-11-29 4 views
2

私はマージをしようとしており、問題が発生しています。パンダマージ2データベース

これらは私の2つのデータフレームです:

DF1

 Team_Id Team_Name Season Daynum Wteam Wscore Lteam 
    0 1104 Alabama  1985 137  1104 50  1112  
    1 1104 Alabama  1985 139  1104 63  1433  
    2 1104 Alabama  1986 137  1104 97  1462  
    3 1104 Alabama  1986 139  1104 58  1228  
    4 1104 Alabama  1987 136  1104 88  1299  

DF2

Season Seed Team 
0 1985 X07  1104 
1 1986 Y05  1104 
2 1987 X02  1104 

私はDF2から種子がDF1の行になりたいです。 DF2にはさらに情報があり、DF1には情報があります。

予想される結果は以下のとおりです。

Team_Id Team_Name Season Daynum Wteam Wscore Lteam Seed 
0 1104 Alabama  1985 137  1104 50  1112 X07 
1 1104 Alabama  1985 139  1104 63  1433 X07 
2 1104 Alabama  1986 137  1104 97  1462 Y05 
3 1104 Alabama  1986 139  1104 58  1228 Y05 
4 1104 Alabama  1987 136  1104 88  1299 X02 
+0

あなたは[ 'pd.merge']を使用してみました(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html) ? – Abdou

+0

指定した出力を生成するために使用できないデータを提供しています。これを[mcve]に減らしてください。そうしないと、問題を再現できません。 –

+0

本当にあなたが望むのは 'df1.merge(df2 [['Seed'、 'Team']]、on = 'Team')' –

答えて

1

あなたがleft_onright_onmergeを必要とする:

DF1.merge(DF2, left_on=['Season','Team_Id'], right_on=['Season','Team']) 

出力:

Team_Id Team_Name Season Daynum Wteam Wscore Lteam Seed Team 
0  1104 Alabama 1985  137 1104  50 1112 X07 1104 
1  1104 Alabama 1985  139 1104  63 1433 X07 1104 
2  1104 Alabama 1986  137 1104  97 1462 Y05 1104 
3  1104 Alabama 1986  139 1104  58 1228 Y05 1104 
4  1104 Alabama 1987  136 1104  88 1299 X02 1104 
+0

ありがとう、Scott Boston! –

+0

@ GilO'Brienよろしくお願いします。ハッピーコーディング! –

関連する問題