Python 根据同一数据帧列表中某些列的值从数据帧中选择行?

Python 根据同一数据帧列表中某些列的值从数据帧中选择行?,python,pandas,dataframe,Python,Pandas,Dataframe,假设有一个数据帧: df1 = A B C 0 1 a a1 1 2 b b2 2 3 c c3 3 4 d d4 4 5 e e5 5 6 f f6 创建为: a1 = [1,2,3,4,5,6] a2 = ['a','b','c','d','e','f'] a3 = ['a1','b2','c3','d4','e5','f6'] df1 = pd.DataFrame(list(zip(a1,a2,a3)),columns=["A&

假设有一个数据帧:

df1 = 
   A  B   C
0  1  a  a1
1  2  b  b2
2  3  c  c3
3  4  d  d4
4  5  e  e5
5  6  f  f6
创建为:

a1 = [1,2,3,4,5,6]
a2 = ['a','b','c','d','e','f']
a3 = ['a1','b2','c3','d4','e5','f6']
df1 = pd.DataFrame(list(zip(a1,a2,a3)),columns=["A","B","C"])
在这里,我认为列AB类似于此数据帧的主键。 所以,
PK=[“A”,“B”]

我有另一个列表,
list1=[[2,'b'],[5,'e']]
,它是数据帧
df[PK]
的子集

是否有任何方法可以从dataframe df获取列表中与这些主键值对应的行

比如:
df1=df[df[PK].values.isin(list1)]
这不符合我的预期

我希望得到输出df1,如下所示:

df1 =
   A  B   C
1  2  b  b2
4  5  e  e5
这里有一些类似的问题,我已经在这个门户中讨论过了。但它们都没有告诉我如何根据上面提到的对多个列的筛选来选择行。 提前感谢。

以下是您可以使用的方法:

输出:

   A  B   C
0  2  b  b2
1  5  e  e5

您可以使用类似以下内容的merge
df1.merge(pd.DataFrame(list1,columns=PK),on=PK)
非常感谢:)
   A  B   C
0  2  b  b2
1  5  e  e5