Python 3.x 获取数组中最接近的较大数字

Python 3.x 获取数组中最接近的较大数字,python-3.x,numpy,dataframe,numbers,Python 3.x,Numpy,Dataframe,Numbers,我有一本字典: import pandas as pd import numpy as np df = {'CQI': np.linspace(1,15,15), 'Qm': [2,2,2,4,4,4,6,6,6,6,6,8,8,8,8], 'Rmax': np.array([78,193,449,378,490,616,466,567,666,772,873,711,797,885,948])/1024, 'SNR_max': [-6.2369,-4.359

我有一本字典:

import pandas as pd
import numpy as np
df = {'CQI': np.linspace(1,15,15), 'Qm': [2,2,2,4,4,4,6,6,6,6,6,8,8,8,8],
         'Rmax': np.array([78,193,449,378,490,616,466,567,666,772,873,711,797,885,948])/1024,
         'SNR_max': [-6.2369,-4.3591,-1.9319,0.1509,1.9976,4.7278,6.2231,8.0591,9.8585,11.8432,
                     13.4893,15.3598,17.4435,19.2155,np.inf]}     
df = pd.DataFrame(df)
我想在“SNR_max”列中找到比某个值大的最接近的值。例如,对于2.5的值,“SNR_max”中最接近的较大值为4.7278。返回值将是“CQI”的值。

请尝试使用以下命令:

第一个零表示数组
df['SNR\u max']]
中的条件
df['SNR\u max']]
的值
True
,对应于idx
[5,6,7,8,9,10,11,12,13,14]
,第二个零用于选择它的第一个元素,即
5

希望这有帮助

value = 2.5
idx_CQI = np.where(df['SNR_max']>value)[0][0]
>>> 5
CQI = df['SNR_max'][idx_CQI]
>>> 4.7278