查找包含两列

时间:2016-08-23 02:14:03

标签: python python-2.7 csv pandas intersection

数据有三列。我需要找到第二列和第三列之间相交的行。例如,下面的数据中哪一行在第二列和第三列之间的数字为15?

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

理想的结果应该是

c   13  17

因为它有'15'与第二列和第三列之间的那条行相交。有没有办法使用Python(特别是Python 2.7)?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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