python - Python在数据框中找到与值最近的邻居
问题描述
我有一个数据框或列表。我想找到最接近给定值的值及其索引。
我的代码:
df = pd.DataFrame({'num':[20,24,35,38]})
val = 26
val_idx = df.iloc[(df['num']-val).abs().argsort()[:2]]
当前输出(val_idx):
num
1 24
0 20
预期输出(val_idx):
num
2 35
1 24
解决方案
import numpy as np
import pandas as pd
# setup
df = pd.DataFrame({'num':[20,24,35,38]})
val = 26
# subtract to get differences
test = np.absolute(np.subtract(val, df["num"]))
# get index
idx = np.argmin(test)
# Condition
idx = np.where(df["num"][idx] > val, [idx-1, idx], [idx, idx+1])
print(idx)
推荐阅读
- javascript - 在 django 中使用 python 函数调用 javascript 函数
- java - 如何使用android中的动画将苹果放入篮子中?
- javascript - keystone.js 中的链式关系
- javascript - 字段验证器错误 Jquery
- xpath - XPATH - 在命名元素之后抓取 div 的内容
- html - 可以显示网页cookies的HTML按钮
- c# - 复合键、EF6 和插入顺序
- sql-server - 如何检查嵌套存储过程是否在 tsqlt 中执行
- reactjs - Keycloak json 配置文件,React 和 Router 4
- node.js - 环回验证在更新查询中不起作用?