假设我有一个数据框,如下:
a b
0 1 2
1 2 3
2 4 2
3 4 3
我想筛选数据框,使得结果如下所示:
a b
0 1 2
3 4 3
即,我想通过过滤这两列,得到组合(1,2)
和(4,3)
。
如果我尝试这样做:
df1 = df[df['a'].isin([1,4]) & df['b'].isin([2,3])]
我得到了整个数据框,因为(1,3)
和(4,2)
的组合也被包含在上述方法中。但是我只需要给定的组合。我有一个大型的元组列表,其中每个元组由两列组成,我希望基于这些元组的对应组合来过滤数据框。
此外,我不想将这两列合并为单个字符串,然后再进行过滤。
[(1,2), (4,3)]
,我想要在数据框中匹配这个列表中的元组组合的所有记录。 - mayank agrawaldf[((df['a'] == 1) & (df['b'] ==2)) | ((df['a'] == 4) & (df['b'] ==3))]
,其中df = pd.DataFrame({'a':[1,2,4,4],'b':[2,3,2,3]})
。 - cph_sto