2016-08-23 2 views
0

Данные имеют три столбца. Мне нужно найти строку, которая имеет число, пересекающееся между вторым и третьим столбцами. Например, какая строка имеет номер 15 между вторым и третьим столбцами в данных ниже?Поиск строки с номером, который может пересекать два столбца

a 1 5 
b 7 10 
c 13 17 
d 20 24 

Идеальный результат должен быть

c 13 17 

, как это имеет «15», пересекающее эту строку между второй и третьей колонкой. Есть ли способ сделать это с помощью Python (в частности, Python 2.7)?

ответ

1

Вы имеете в виду это?

import pandas as pd 

df = pd.DataFrame([('a', 1, 5), ('b', 7, 10), ('c', 13, 17), ('d', 20, 24)], 
        columns=['col1', 'col2', 'col3']) 

df[(df.col2 < 15) & (df.col3 > 15)] 

дает ...

col1 col2 col3 
2 c 13 17 
0

Другой подход, с использованием query:

In [7]: df 
Out[7]: 
    tag start end 
0 a  1 5 
1 b  7 10 
2 c  13 17 
3 d  20 24 

In [8]: df.query('start < 15 < end') 
Out[8]: 
    tag start end 
2 c  13 17 
Смежные вопросы