excel 中的 MATCH 函数允许使用可选参数集,该参数集将返回小于给定值的最大值或大于给定值的最小值。
假设我有一个 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
还有一个数据框
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
如何使用 match_type 为 1 进行 INDEX-MATCH,这意味着它将遍历 Obs 中的每个值,并返回对应于“Obs”的“Cat”的值,该值是最大的值比和等于查找?
请注意,我想以某种矢量化方式执行此操作,而不是编写自定义函数并循环遍历第二个 DataFrame 的行。那将是相当低效的。
最佳答案
IIUC,你想要pd.merge_asof
pd.merge_asof(x, y)
关于python - 如何在 Pandas 中有效地完成 Excel 的 MATCH 函数(小于)的等效操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42032511/