创建容器并提取该容器的值

时间:2019-11-25 06:54:15

标签: python pandas intervals bin

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

   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中创建bin / interval来做到这一点。

谢谢

1 个答案:

答案 0 :(得分:1)

使用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