python - 基于两列的 Pandas isin

标签 python pandas dataframe

假设我有以下两个数据框:

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

最佳答案

我们有 mergeindicator

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/

相关文章:

python - 如何处理用 Pandas 导入的数据?

python - 操作系统 10.8 升级后的 pydev 调试器 : unable to find real location for python 2. 7

python - 将 pandas 数据帧的 'tabulated' 字符串转换回数据帧

python - 只读取大型 JSON 中的特定字段并导入 Pandas Dataframe

python - Pandas :在包含列表的一列中找到最大值

python - 如何在 python pandas 中获取唯一行值并返回 bool 结果?

python - 如何使用python将程序置于最前面

python - 如何从给定索引的 groupby DataFrame 中检索元素

python - 如何制作多列,每列具有不同的行

python - 展平 pandas 数据框的嵌套 Json?