且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-02-10 22:00:07

您可以使用argsort()之类的

说,input = 3

In [198]: input = 3

In [199]: df.iloc[(df['num']-input).abs().argsort()[:2]]
Out[199]:
   num
2    4
4    2

df_sort是具有2个最接近值的数据框.

df_sort is the dataframe with 2 closest values.

In [200]: df_sort = df.iloc[(df['num']-input).abs().argsort()[:2]]

对于索引,

In [201]: df_sort.index.tolist()
Out[201]: [2, 4]

对于值,

In [202]: df_sort['num'].tolist()
Out[202]: [4, 2]


详细信息,对于上述解决方案df

In [197]: df
Out[197]:
   num
0    1
1    6
2    4
3    5
4    2