【发布时间】:2016-07-18 10:06:23
【问题描述】:
我有一个大型数据框(约 100 万行)。我最终将在两个年龄组之间插入光谱。但是,我需要首先找到我需要找到的任何年龄以上和以下的最接近的值。
DataFrame 大致如下所示
Age Wavelength Luminosity
1
1
1
4
4
6
6
我需要能够输入 5,并返回值 4 和 6。我正在努力寻找一种方法来做到这一点?这是我尝试过的:
def findnearest(array,value):
idx = np.searchsorted(array,value, side='left')
if idx > 125893.0:
return array[idx]
else:
return array[idx]
idx1 = np.searchsorted(array,value, side='right')
if idx1 < 2e10:
return array[idx1]
else:
return array [idx1-1]
C = findnearest(m05_010['age'], 5.12e7)
print(C)
这只返回一个值,而不是两个。这是正确的道路还是我应该做一些不同的事情?有没有更好的办法?
【问题讨论】:
标签: python sorting pandas dataframe astronomy