假设我有以下数据框
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
有没有办法完全匹配特定索引处的值而不是匹配任何值?
答案 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