创建 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
我有一个 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