Pandas DataFrame:判断df1的a列元素是否存在于df2的x列中

方法一:

import pandas as pd  
  
df1 = pd.DataFrame({  
    'a': [1, 2, 3, 4, 5],  
    'b': [10, 20, 30, 40, 50],  
    'c': ['p', 'q', 'r', 's', 't']  
})  
   
df2 = pd.DataFrame({  
    'x': [3, 4, 7, 9, 11],  
    'y': [100, 200, 300, 400, 500],  
    'z': ['A', 'B', 'C', 'D', 'E']  
})  
  
# 使用isin()方法检查df1['a']中的元素是否在df2['x']中  
# 并将结果映射为'in'或'not in'  
df1['new_column'] = df1['a'].isin(df2['x']).map({True: 'in', False: 'not in'})  
  
print(df1)

方法二:

# 使用isin()方法检查df1['a']中的元素是否在df2['x']中  
mask = df1['a'].isin(df2['x'])  
  
# 使用apply()方法和一个lambda函数来根据mask的结果添加新列  
df1['new_column'] = mask.apply(lambda x: 'in' if x else 'not in')  

输出:

   a   b  c new_column  
0  1  10  p     not in  
1  2  20  q     not in  
2  3  30  r          in  
3  4  40  s          in  
4  5  50  t     not in

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值