IIUC, используя groupby
с set
для каждого DFS, тогда мы делаем сравнение
s1=df1.groupby('USR_ID')['RELATIONSHIP_ID'].apply(set)
s2=df2.groupby('USR_ID')['RELATIONSHIP_ID'].apply(set)
[(x-y)|(y-x) for x , y in zip(*pd.concat([s1,s2],1).values.T)]
Out[585]: [{1, 2}, set(), {3}]
Обновление
i1=[(x-y) for x , y in zip(*pd.concat([s1,s2],1).values.T)]
i2=[(y-x) for x , y in zip(*pd.concat([s1,s2],1).values.T)]
pd.DataFrame({'RELATIONSHIP_ID_1':list(map(list,i1)),'RELATIONSHIP_ID_2':list(map(list,i2))},index=s1.index).apply(lambda x : x.str[0]).dropna(thresh=1)
Out[646]:
RELATIONSHIP_ID_1 RELATIONSHIP_ID_2
USR_ID
49 2.0 1.0
52 NaN 3.0