функция pandas.merge_asof () в Python

Опубликовано: 27 Марта, 2022

Этот метод используется для выполнения слияния 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 package
import pandas
  
# creating data
left = 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 data
print(left)
print(right)
  
# applying merge_asof on data
print(pandas.merge_asof(left, right, on="a"))
print(pandas.merge_asof(left, right, on="a"
                        allow_exact_matches=False))

Выход:

Example 2 :

Python3

# importing package
import pandas
  
# creating data
left = 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 data
print(left)
print(right)
  
# applying merge_asof on data
print(pandas.merge_asof(left, right, on="a"
                        direction="forward"))
print(pandas.merge_asof(left, right, on="a",
                        direction="nearest"))

Выход :

Example 3 :

Python3

# importing package
import pandas
  
# creating data
left = 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 data
print(left)
print(right)
  
# applying merge_asof on data
print(pandas.merge_asof(left, right, left_index=True
                        right_index=True))

Выход:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

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