熊猫:两个“ isin”,一个条件

时间:2020-03-13 09:04:16

标签: python pandas dataframe

我使用熊猫已有几个月了,今天我发现有些奇怪。

看看这两个数据帧:

df1 = pd.DataFrame(data={'C1' : [1,1,1,2],'C2' : ['A','B','C','D']})
df2 = pd.DataFrame(data={'C1':[2,2,2],'C2':['A','B','C']})

我想要的是:在df2中,存在于df1中的每对{C1,C2}。

这就是我写的:df2[df2.C1.isin(df1.C1) & df2.C2.isin(df1.C2)]

我想要的结果是一个空的dataFrame,因为在df1中,2未与“ A”,“ B”或“ C”链接,而我得到的是df2。我尝试了df2[df2[["C1,"C2"]].isin(df1[["C1,"C2"]])],但如果df2具有更多的列(即使未使用)也无法使用。

1 个答案:

答案 0 :(得分:2)

您可以使用内部merge

df2.merge(df1, how='inner', on=['C1', 'C2'])

Empty DataFrame
Columns: [C1, C2]
Index: []