import pandas as pd
a=pd.DataFrame({' ID':[1,1,2,2],'a.A':[1,5,10,15],'a.B':[3,8,13,18]})
b=pd.DataFrame({' ID':[1,1,2,2],'b.A':[2,2,14,18],'b.B':[3,2,15,20]})
a
ID a.A a.B
0 1 1 3
1 1 5 8
2 2 10 13
3 2 15 18
b
ID b.A b.B
0 1 2 3
1 1 2 2
2 2 14 15
3 2 18 20
我需要左加入B到A,其中A.A的到A·B的範圍內與該b.A到b.B的重疊對於給定的ID號。邏輯也可以這樣解釋: 如果ID與a和b匹配,則如果(a.A < = b.A和a.B> = b.A)或(a.A < = b.B且a.B> = b.B)則匹配。
最後的結果是這樣的:
ID a.A a.B b.A b.B
0 1 1 3 2 3
1 1 1 3 2 2
2 1 5 8
3 2 10 13
4 2 15 18 18 20
5 2 15 18 18 20
提前感謝!
這是你想要的正確輸出嗎?我不確定第4行。請參閱我的答案。 –