从基于元组的数据框中选择数据

时间:2013-08-16 01:01:45

标签: pandas

假设我有以下数据框

df = DataFrame({'vals': [1, 2, 3, 4], 
               'ids': ['a', 'b', 'a', 'n']})

我想选择列表中的所有行

[ (1,a), (3,f) ]

我尝试过像这样使用boolean indexing

to_search = { 'vals' : [1,3],
          'ids'  : ['a', 'f']
          }

df.isin(to_search)

我希望只有第一行匹配,但我得到第一行和第三行

     ids   vals
0   True   True
1   True  False
2   True   True
3  False  False

有没有办法完全匹配特定索引处的值而不是匹配任何值?

1 个答案:

答案 0 :(得分:0)

您可以为要匹配的内容创建DataFrame,然后merge

In [32]: df2 = DataFrame([[1,'a'],[3,'f']], columns=['vals', 'ids'])

In [33]: df.merge(df2)
Out[33]: 
  ids  vals
0   a     1