我有一些数字的list。我希望从list中为整个列找到最接近的值:
mylist=[11,44,23,66,100]
df = pd.DataFrame(data={'Data':[11,22,33,43,52,63]})
df>>
Data
0 11
1 22
2 33
3 43
4 52
5 63我想要的输出:
Data Nearest
0 11 11
1 22 23
2 33 23
3 43 44
4 52 66
5 63 66我尝试过在min函数中使用iteraration,但是它很慢。
发布于 2021-07-13 04:22:22
这可能管用,
def nearest(a, x):
n = [abs(i-x) for i in a]
idx = n.index(min(n))
return a[idx]
def nearest_alternative(a, v):
idx = (np.abs(a-v)).argmin()
return array[idx]
df['nearest'] = df['Data'].apply(lambda x: nearest(mylist, x))备选方案:
O/P:
Data nearest
0 11 11
1 22 23
2 33 23
3 43 44
4 52 44
5 63 66解释:
nearest函数将接收mylist和每个数据元素。https://stackoverflow.com/questions/68356365
复制相似问题