У меня есть проблема в моем коде, я делаю точки разрезов.
Во-первых, это мой столбец Dataframe:
In [23]: df['bad_%']
0 0.025
1 0.007
2 0.006
3 0.006
4 0.006
5 0.006
6 0.007
7 0.007
8 0.007
9 0.006
10 0.006
11 0.009
12 0.009
13 0.009
14 0.008
15 0.008
16 0.008
17 0.012
18 0.012
19 0.05
20 0.05
21 0.05
22 0.05
23 0.05
24 0.05
25 0.05
26 0.05
27 0.062
28 0.062
29 0.061
5143 0.166
5144 0.166
5145 0.166
5146 0.167
5147 0.167
5148 0.167
5149 0.167
5150 0.167
5151 0.05
5152 0.167
5153 0.167
5154 0.167
5155 0.167
5156 0.051
5157 0.052
5158 0.161
5159 0.149
5160 0.168
5161 0.168
5162 0.168
5163 0.168
5164 0.168
5165 0.168
5166 0.168
5167 0.168
5168 0.049
5169 0.168
5170 0.168
5171 0.168
5172 0.168
Name: bad%, Length: 5173, dtype: float64
Я использовал этот код для определения значенияравно или самое близкое к 0,05 (ЗНАЧЕНИЕ, ВНЕДРЕННОЕ НА КОНСОЛЕ)
error = 100 #Margin of error
valuesA = [] #array to save data
pointCut=0 #identify cut point
for index, row in df.iterrows():
if(abs(row['bad%'] - a) <= error):
valuesA = row
error = abs(row['bad%'] - a)
#Variable "a" introduced by console, in this case is "0.05"
pointCut = index
Этот код возвращает значение "0,05" в индексе 5151 в первомЭкземпляр выглядит хорошо, потому что "0,05" в индексе "5151" является последним "0,05" .
Out [27]:
5151 0.05
Но моя цель - получить ПОСЛЕДНЕЕ ЗНАЧЕНИЕ В КОЛОННЕ равно или максимально близко к "0,05" , в этом случае это значение соответствует "0,049" в индексе "5168" , мне нужно получить это значение.
Существует алгоритм, который разрешает это?Любое решение или рекомендация?Заранее спасибо.