我有兩個數據幀D1和D2。兩者大小不同,但有一些關係。 D1有一列「ID」具有相同ID的多個實例,D2只有一個實例。那麼我怎樣才能將這兩個數據框連接在一起呢?合併不同長度的兩個數據幀,在具有不同實例數的特定列上
D1: D2:
ID val1 val2 ID Target
1 x y 1 0
1 x y 2 1
2 a b
2 a c
所以在這裏我需要從D2
在D1的新列稱爲目標,每行D1與相應的值ID val1 val2 Target
1 x y 0
1 x y 0
2 a b 1
2 a c 1
無論誰低估這個答案,我會很高興知道爲什麼我可以改進答案或解決任何問題。這是完成這項任務的兩種非常合適的方法。 – piRSquared
爲什麼需要設置'D2'的索引?其他答案不這樣做。 – ErikE
@ErikE這是'merge'和'join'之間的區別。 'pandas.DataFrame.merge'默認會對列值進行合併。雖然'join'默認查看索引。我可以用'on ='ID''指定一個要加入的列來覆蓋'join'行爲。但是,這種覆蓋能力僅限於「左」對象。所以,我必須設置「right」對象的索引才能正確執行。 – piRSquared