def process():
active = ACTIVES[0]
df = pandas.read_csv(f'{active}.csv', index_col='time')
probs = df.groupby(['time']).candle.apply(lambda g: g.value_counts() / len(g))
print(probs)
результат:
time
00:00 put 0.735294
call 0.264706
00:05 call 0.500000
put 0.352941
dogi 0.147059
...
23:50 call 0.666667
put 0.333333
23:55 call 0.500000
put 0.441176
dogi 0.058824
Name: candle, Length: 718, dtype: float64
теперь, как я могу отфильтровать столбец TIME по наивысшим значениям (put / call) по крайней мере выше или равным 0,7 и отфильтровать те, которые в следующий TIME равно или больше
пример:
time
00:00 put 0.735294 #higher then 0.7, but do not include in the final resul because the next TIME (00:05) is not put
call 0.264706
00:05 call 0.500000
put 0.352941
dogi 0.147059
time
00:00 put 0.735294 #higher then 0.7, and the next TIME is a put and higher or equal a 0.7
call 0.264706
00:05 put 0.700000
call 0.300000
столбец ВРЕМЯ находится в 5 из 5 минут
ОБНОВЛЕНИЕ 01
что У меня до сих пор:
def process():
active = ACTIVES[0]
df = pandas.read_csv(f'{active}.csv', index_col='time', parse_dates=True)
df = df.groupby(['time']).candle.apply(lambda g: g.value_counts() / len(g)).reset_index()
print(df.query('candle > 0.7'))
результат печати:
time level_1 candle
0 2020-05-07 00:00:00 put 0.735294
20 2020-05-07 00:35:00 call 0.718750
58 2020-05-07 01:40:00 call 0.750000
371 2020-05-07 12:35:00 put 0.787879
487 2020-05-07 16:25:00 call 0.742857
625 2020-05-07 20:55:00 put 0.718750
663 2020-05-07 22:15:00 call 0.750000
теперь, как я могу перебирать строки и сравнивать, если следующая строка TIME больше на 5 минут, а level_1 равен направление?
прошу прощения за мой английский sh