查找排序后的pandas数据框中与列表中值最接近的值



我见过:

如何在Pandas系列中找到与输入数字最接近的值?

我有一个像这样的pandas DataFrame:

col27.510

您可以在numpy中使用broadcasting获取差值,然后获得包含最小绝对值的索引

a = np.array([4,7.6,10]).reshape(1,-1) #np.array([[4,7.6,10]])
df.iloc[abs(df.col1.to_numpy()[:,None] - a).argmin(0)]
idx  col1  col2
1    2   3.0    22
4    5   7.5     6
6    7  10.1    11

merge_asof匹配排序数据:

pd.merge_asof(pd.DataFrame({'key':inpt}), df, 
right_on='col1', left_on='key',
direction='nearest')

输出:

key  idx  col1  col2
0   4.0    2   3.0    22
1   7.6    5   7.5     6
2  10.0    7  10.1    11

第一种方法是通过减法,但是您考虑过在您提到的主题中使用分区的解决方案吗?

相关内容

  • 没有找到相关文章

最新更新