我见过:

  • how do I find the closest value to a given number in an array?
  • How do I find the closest array element to an arbitrary (non-member) number?

  • 这些与 Vanilla 蟒有关,与 Pandas 无关。

    如果我有这个系列:
    ix   num
    0    1
    1    6
    2    4
    3    5
    4    2
    

    然后输入3,如何(有效)查找?
  • 如果在
  • 系列中找到索引3
  • 如果在系列中找不到该值,则该值小于3且大于3。

  • IE。使用上述系列{1,6,4,5,2}和输入3,我应该获得带有索引(2,4)的值(4,2)。

    最佳答案

    你可以像这样使用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个最接近值的数据框。
    In [200]: df_sort = df.iloc[(df['num']-input).abs().argsort()[:2]]
    

    对于索引,
    In [201]: df_sort.index.tolist()
    Out[201]: [2, 4]
    

    对于值(value),
    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
    

    关于python - 如何找到Pandas系列中与输入数字最接近的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30112202/

    10-11 07:49
    查看更多