функция pandas.merge_asof () в Python
Этот метод используется для выполнения слияния asof. Это похоже на левое соединение, за исключением того, что мы сопоставляем по ближайшему ключу, а не по равным ключам. Оба DataFrames должны быть отсортированы по ключу.
Syntax : pandas.merge_asof(left, right, on=None, left_on=None, right_on=None, left_index=False, right_index=False, by=None, left_by=None, right_by=None, suffixes=(‘_x’, ‘_y’), tolerance=None, allow_exact_matches=True, direction=’backward’, )
Parameters :
- left, right : DataFrame
- on : label, Field name to join on. Must be found in both DataFrames.
- left_on : label, Field name to join on in left DataFrame.
- right_on : label, Field name to join on in right DataFrame.
- left_index : boolean, Use the index of the left DataFrame as the join key.
- right_index : boolean, Use the index of the right DataFrame as the join key.
Ниже приведена реализация указанного выше метода с некоторыми примерами:
Пример 1:
Python3
# importing packageimport pandas # creating dataleft = pandas.DataFrame({"a": [1, 5, 10], "left_val": ["a", "b", "c"]}) right = pandas.DataFrame({"a": [1, 2, 3, 6, 7], "right_val": [1, 2, 3, 6, 7]}) # view dataprint(left)print(right) # applying merge_asof on dataprint(pandas.merge_asof(left, right, on="a"))print(pandas.merge_asof(left, right, on="a", allow_exact_matches=False)) |
Выход:

Example 2 :
Python3
# importing packageimport pandas # creating dataleft = pandas.DataFrame({"a": [1, 5, 10], "left_val": ["a", "b", "c"]}) right = pandas.DataFrame({"a": [1, 2, 3, 6, 7], "right_val": [1, 2, 3, 6, 7]}) # view dataprint(left)print(right) # applying merge_asof on dataprint(pandas.merge_asof(left, right, on="a", direction="forward"))print(pandas.merge_asof(left, right, on="a", direction="nearest")) |
Выход :

Example 3 :
Python3
# importing packageimport pandas # creating dataleft = pandas.DataFrame({"left_val": ["a", "b", "c"]}, index=[1, 5, 10]) right = pandas.DataFrame({"right_val": [1, 2, 3, 6, 7]}, index=[1, 2, 3, 6, 7]) # view dataprint(left)print(right) # applying merge_asof on dataprint(pandas.merge_asof(left, right, left_index=True, right_index=True)) |
Выход:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.