You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python IN运算符检查DataFrame中是否存在多个指定值

错误原因

原代码的['Tom', 'Lee', 'Sara'] in df.values逻辑是将整个长度为3的列表作为单个元素,和df.values(二维数组,每个成员是长度为2的行数据)做匹配,完全无法命中对应值,还会触发元素级比较失败的未来警告。

实现方案

场景1:验证三个值全部存在于DataFrame任意位置

借助numpy的isin方法批量判断所有目标值是否都在df的取值范围内:

import pandas as pd
import numpy as np

details = {
    'Name' : ['Tom', 'Lee', 'Sara',
              'Shivangi', 'Priya', 'Swapnil'],
    'University' : ['BHU', 'JNU', 'DU', 'BHU', 'Geu', 'Geu'],
}
df = pd.DataFrame(details, columns = ['Name',  'University'])

target = ['Tom', 'Lee', 'Sara']
# 判断所有目标值是否都存在于df中
if np.isin(target, df.values).all():
    print("\nYes, These values exist in Dataframe")
else:
    print("\nNo,value not exists ")

场景2:验证三个值全部存在于指定的Name列(匹配你的示例场景)

直接针对单列做判断,执行效率更高:

target = ['Tom', 'Lee', 'Sara']
if df['Name'].isin(target).nunique() == len(target):
    print("\nYes, These values exist in Dataframe")
else:
    print("\nNo,value not exists ")

内容的提问来源于stack exchange,提问作者PyBoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:45:01