Python 熊猫";如果X不在数据帧中;总是扔假货

Python 熊猫";如果X不在数据帧中;总是扔假货,python,pandas,Python,Pandas,我有一个简单的应用程序,提示输入客户ID。该应用程序使用输入执行SQL语句,然后将结果集转换为数据帧 然后检查所提供的ID是否存在于数据帧中;但是,即使ID确实存在,它也总是返回false。打印输入和数据框可确认输入的ID和数据框中的ID相同,列名也正确 while True: customer_id = input("Insert an existing Customer ID") print(df) print(customer_id) c

我有一个简单的应用程序,提示输入客户ID。该应用程序使用输入执行SQL语句,然后将结果集转换为数据帧

然后检查所提供的ID是否存在于数据帧中;但是,即使ID确实存在,它也总是返回false。打印输入和数据框可确认输入的ID和数据框中的ID相同,列名也正确

while True:
    customer_id = input("Insert an existing Customer ID")
    print(df)
    print(customer_id)
    customer_exists = customer_id in df.ID
    print(customer_exists)
    if not customer_exists:
        retry = input("No such customer. Try again? Y/N")
        if retry.upper() == 'Y':
            continue
        else:
            return None
    else:
        break
输出:

#The prompt
Insert an existing Customer ID: A1

#The dataframe
   ID  FNAME MNAME    LNAME  ADDRESS1 CUSTOMER_TYPE
0  A1  HELGA  None  PATHAKI  MICHIGAN        BRONZE

#The ID that was input by the user
A1

#the boolean result
False

这是怎么回事?

根据数据量的不同,我建议您使用np.isin()


这回答了你的问题吗?嗨@Dasph,欢迎来到SO。上面的链接(自动生成的bc Anderson将此问题标记为重复)回答了您的问题。在您的代码中,
In
只是检查
customer\u id
是否在该系列的索引中。查看链接了解更多信息。
import numpy as np

customer_id = input("Insert an existing Customer ID") #A1
sample= np.isin(customer_id, item2)
print(sample) # returns True