比较python中的两个数据帧值

时间:2016-08-24 15:30:23

标签: python pandas indexing compare

我有两个数据框df1['LicId']df2['LicId']

df1['LicId']将始终有一个值

    LicId
0   abc1234

但是df2['LicId']会有几个ID

    LicId
0   abc1234
1   xyz2345

我的任务是将df1['LicId']df2['LicId']进行比较,并仅在两者之间存在匹配时执行代码。

我试过了:

if df1['LicId'][0]==df2['LicId'][0]:
    remaining code

但是,这只会检查abc1234 - 它必须检查df2的所有索引值。之后,我在df1中也可能有xyz2345

有人可以告诉我如何处理这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以将值与isin()匹配:

df1 = pd.DataFrame({'LicId':['abc1234', 'a', 'b']})
df2 = pd.DataFrame({'LicId':['abc1234', 'xyz2345', 'a', 'c']})

df1

     LicId
0  abc1234
1        a
2        b

df2

     LicId
0  abc1234
1  xyz2345
2        a
3        c

匹配值:

if len(df2.loc[df2['LicId'].isin(df1['LicId'])]) > 0:
    print(df2.loc[df2['LicId'].isin(df1['LicId'])])
    #remaining code

输出:

     LicId
0  abc1234
2        a