我連接兩個熊貓數據框如下。熊貓:連接條件的唯一值
part1 = pd.DataFrame({'id' :[100,200,300,400,500],
'amount': np.random.randn(5)
})
part2 = pd.DataFrame({'id' :[700,100,800,500,300],
'amount': np.random.randn(5)
})
concatenated = pd.concat([part1, part2], axis=0)
amount id
0 -0.458653 100
1 2.172348 200
2 0.072494 300
3 -0.253939 400
4 -0.061866 500
0 -1.187505 700
1 -0.810784 100
2 0.321881 800
3 -1.935284 500
4 -1.351507 300
如何限制動作,以使在part2
行只包含在concatenated
如果該行id
未出現在part1
?在某種程度上,我想將id
列看作一組。
是否可以在concat()期間執行此操作,或者這是更多的後處理步驟嗎?
在這個例子中所需的輸出是:
concatenated_desired
amount id
0 -0.458653 100
1 2.172348 200
2 0.072494 300
3 -0.253939 400
4 -0.061866 500
0 -1.187505 700
2 0.321881 800
我查了[手冊](http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.drop_duplicates.html),但我還是不太確定。這是否確保我保持給定'id'的第一次出現(行)? – Rhubarb
是的,有一個take_last參數:布爾值,默認爲False。取連續的最後一個觀察行。默認爲第一行。所以你可以選擇保留哪一個,第一個還是最後一個。 – HYRY
因此,'take_last = False'(默認)意味着'take_first'? – Rhubarb