如何在每次python datafram中出现两个键时将来自mydf1的值填充到mydf2中

2024-05-16 10:58:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在类似的表df1df2之间执行左联接,如下所示:

df2

Year    Team    Elo
1975    ANA     1483.527161
1975    BOS     1528.148559
1976    ARI     1499.237268
1976    LAD     1533.241241
1977    ATL     1490.446315
1978    BAL     1533.906786
1979    BOS     1528.148559
1980    CHC     1473.185062
1981    CHW     1494.119
1981    PIT     1507.463466

“我的真实表与这个示例的一个区别是,我原来的df2表包含大约40个不同的年份,每年包含大约20个不同的团队。我的意思是,每一年,每个团队都有不同的Elo值。”

这个表df1

Game_ID         Team    Value 1     Value2      Year
HOU197504070    ANA     HOU         ATL         1975
HOU197504080    LAD     LAD         ATL         1975
HOU197504070    BOS     ATL         CHW         1975
HOU197504080    CHC     HOU         ATL         1975

我尝试使用的代码是:

df1= df1.join(df2, on=['Year','Team'])

但是,我得到了这个错误:

ValueError: len(left_on) must equal the number of levels in the index of "right"

我的预期产出是

    Game_ID         Team    Value 1     Value2      Year    Elo
    HOU197504070    ANA     HOU         ATL         1975    1483.527161
    HOU197504080    LAD     LAD         ATL         1975    0
    HOU197504070    BOS     ATL         CHW         1975    1528.148559
    HOU197504080    CHC     HOU         ATL         1975    0

谢谢


Tags: 团队yearteamdf1df2boselolad