Я получил два кадра данных с несколькими столбцами, но с этими тремя с похожими данными.
Df1:
ID Line ... Sta
19805 120 ... 30
19805 120 ... 40
19805 123 ... 30
. . . .
. . . .
19841 120 ... 30
Df2:
ID Line ... Sta
19805 122 ... 30
19805 119 ... 41
19805 123 ... 30
. . . .
. . . .
19841 120 ... 33
Я хотел бы добавить два столбца в Df2 с одинаковыми столбцами Df1, используя ближайшее совпадение с Df1
Df2:
ID Line ... Sta linedf1 stadf1
19805 122 ... 30 120 30
19805 119 ... 41 120 40
19805 123 ... 30 123 30
. . . . . .
. . . . . .
19841 120 ... 33 120 30
обратите внимание, что совпадение должно быть внутри диапазона Df2 ["Line"] + - 4 и Df2 ["Sta"] + - 4
Поэтому я попробовал это:
Df1["line"].where((Df2['line']-4)<=Df1["line"]) & (Df1["line"]<=(Df2['line']+4)
Df1.loc[((Df2['line']-4)<=Df1["line"]) & ((Df1["line"]<=(Df2['line']+4))]
Df1[Df1["line"].between((Df2['line']-4),(Df2['line']+4), inclusive= True)]
но все они приводят к этой ошибке
ValueError: Can only compare identically-labeled Series objects
У кого-нибудь есть идеи, как этого добиться? надеюсь, этот вопрос не слишком расплывчатый