我的数据框如下:
s gamma_star
0 0.000000 0.6261
1 0.000523 0.6262
2 0.000722 0.6263
3 0.000861 0.6267
4 0.000972 0.6269
5 0.001061 0.6260
6 0.001147 0.6263
7 0.001218 0.6261
我有一个值s = 0.000871
,我需要查找的是属于此s
的相关gamma_star。在上面的示例中,s
在3 0.000861 0.6261
和4 0.000972 0.6261
之间,则与之相关的gamma_star
是0.6267
!我有点卡住,不知道该如何交易,有什么想法吗?谢谢!
答案 0 :(得分:1)
您可以这样做:
df.loc[(df.s > s).idxmax()-1, 'gamma_star']
# 0.6267
使用条件将指示满足条件的起点
(df.s > s)
0 False
1 False
2 False
3 False
4 True
5 True
6 True
7 True
Name: s, dtype: bool
,通过使用idxmax()
,我们可以找到间隔的开始:
(df.s > s).idxmax()-1
# 3
答案 1 :(得分:0)
如果您通过s值,则可以循环执行此操作。
for i in range(len(s)-1):
if given_value > s[i] and given_value < s[i+1]:
gamma_s_wanted = gamma_star[i]
break
else:
gamma_s_wanted = gamma_star[-1]