Функция MATCH в excel позволяет задать необязательный набор параметров, который будет возвращать либо наибольшее значение меньше заданного значения, либо самое меньшее значение, превышающее заданное значение.Как эффективно выполнить эквивалент функции MATCH Excel (меньше) в Pandas?
Предположим, у меня есть DataFrame, x
.
In [1]: x = pd.DataFrame(data=list(range(0, 11)), columns=["Obs"])
In [2]: x
Out[2]:
Obs
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
И dataframe, y
.
In [3]: y = pd.DataFrame(data=[(-1, "Small"), (4, "Medium"), (7, "Large")],
columns=["Obs", "Cat"])
In [4]: y
Out[4]:
Obs Cat
0 -1 Small
1 4 Medium
2 7 Large
Как я могу сделать INDEX-MATCH с тип_сопоставления 1, означает, что она будет проходить через каждое из значений в Obs, и возвращает значение из «Cat», что соответствует «набл», который является наибольшим значением, которое меньше и равно поиску?
Обратите внимание, что я хотел бы сделать это определенным образом и НЕ писать пользовательскую функцию и прокручивать строки второго DataFrame. Это было бы довольно неэффективно.
или прибегнуть к pd.merge, если вы с помощью версия панд ниже 0.19.0 – Amorpheuses