假设我有以下两个数据框:
df = pd.DataFrame({'col1':['a','b', 'c'], 'col2': ['q', 'w', 'e']})
df1 = pd.DataFrame({'col1': ['c', 'b', 'b', 'r','a', 'l', 'c'], 'col2': ['e', 'w', 'q', 'u', 'q', 'w', 'q']})
print(df)
col1 col2
a q
b w
c e
print(df1)
col1 col2
c e
b w
b q
r u
a q
l w
c q
我想在 df1 中找到 df 中的所有对并在新列中返回,我的预期输出将是:
col1 col2 col3
c e True
b w True
b q False
r u False
a q True
l w False
c q False
我知道这可以通过创建一个键来连接列来完成,但我想现在是否有一种简洁的方法来做到这一点,比如:
df1.isin(df) #doesn't work
最佳答案
我们有 merge
与 indicator
s=df1.merge(df,indicator=True,how='left')
s['col3']=s['_merge']=='both'
s
col1 col2 _merge
0 c e both
1 b w both
2 b q left_only
3 r u left_only
4 a q both
5 l w left_only
6 c q left_only
关于python - 基于两列的 Pandas isin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61236364/