创建 bin 并为该 bin 提取值

Creating bins and extracting values for that bin

我有一个 pandas 数据框,看起来像

   Temperature_lim  Factor
0           32       0.95
1           34       1.00
2           36       1.06
3           38       1.10
4           40       1.15

我需要提取任何给定温度的系数值,如果我当前的温度是 31,我的系数是 0.95。如果我当前的温度是 33,系数是 1,如果我的 current_temp 是 38.5,系数是 1.15。因此,通过给出我当前的温度,我想知道该温度的因数。

我可以使用多个 if else 语句来做到这一点,但是有什么有效的方法可以通过在 pandas 或 python.

中创建 bins/intervals 来做到这一点

谢谢

使用 cut-np.inf 添加到列 Temperature_lim 的值,并根据 Factor 的最后一个值缺失值:

df1 = pd.DataFrame({'Temp':[31,33,38.5, 40, 41]})

b = [-np.inf] + df['Temperature_lim'].tolist()
lab = df['Factor']

df1['new'] = pd.cut(df1['Temp'], bins=b, labels=lab, right=False).fillna(lab.iat[-1])
print (df1)
   Temp   new
0  31.0  0.95
1  33.0  1.00
2  38.5  1.15
3  40.0  1.15
4  41.0  1.15