0

假设我有以下数据框

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

我想选择列表中的所有行

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

我试过像这样使用布尔索引

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

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

4

1 回答 1

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
于 2013-08-16T01:59:51.737 回答