Localizando intervalos correspondentes nos pandas
Existe essa API interessante chamadaIntervalindex
novo em 0,20 que permite criar um índice de intervalos.
Dados alguns dados de amostra:
data = [(893.1516130000001, 903.9187099999999),
(882.384516, 893.1516130000001),
(817.781935, 828.549032)]
Você pode criar o índice assim:
idx = pd.IntervalIndex.from_tuples(data)
print(idx)
IntervalIndex([(893.151613, 903.91871], (882.384516, 893.151613], (817.781935, 828.549032]]
closed='right',
dtype='interval[float64]')
Uma propriedade interessante deInterval
s é que você pode executar verificações de intervalo comin
:
print(y[-1])
Interval(817.78193499999998, 828.54903200000001, closed='right')
print(820 in y[-1])
True
print(1000 in y[-1])
False
Gostaria de saber como aplicar esta operação a todo o índice. Por exemplo, dado algum número900
, como eu poderia recuperar uma máscara booleana de intervalos para a qual esse número se encaixa?
Eu posso imaginar:
m = [900 in y for y in idx]
print(m)
[True, False, False]
Existem maneiras melhores de fazer isso?