Python 我可以检查一列中是否有多个值吗?

Python 我可以检查一列中是否有多个值吗?,python,pandas,Python,Pandas,我试图检查我所有的期望值是否都在数据框中。预期值是提前知道的,数据帧是从数据库查询自动生成的 这是我试图做的一个例子 import pandas as pd import StringIO expected_ids = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] csv = StringIO.StringIO("""ExpectedID,Random Value 1,val1 2,val2 3,val3 8,val8 9,val9 10,val10 """) df = pd

我试图检查我所有的期望值是否都在数据框中。预期值是提前知道的,数据帧是从数据库查询自动生成的

这是我试图做的一个例子

import pandas as pd
import StringIO

expected_ids = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
csv = StringIO.StringIO("""ExpectedID,Random Value
1,val1
2,val2
3,val3
8,val8
9,val9
10,val10
""")
df = pd.read_csv(csv, sep=",")

for e in expected_ids:
    if e not in df['ExpectedID']:
        print "Missing: ", e
我的问题是,我必须逐个检查我期望的每个值,在我的实际代码中,大约有14000个这样的值。我还想把丢失的数据拉到另一个数据框中,我以后可以对其进行操作,但不知道如何操作

我的另一个问题是上面打印的是:

Missing:  6
Missing:  7
Missing:  8
Missing:  9
Missing:  10
这些值并不都是正确的。我缺少6和7,但8、9和10在df中。它也没有说4和5不见了


如何准确地检查数据帧列中是否有多个值?

df['ExpectedId']
是一个
系列,在测试成员资格时,其行为类似于
dict

In [5]: df.ExpectedId
Out[5]:
0     1
1     2
2     3
3     8
4     9
5    10
Name: ExpectedID, dtype: int64

In [6]: 0 in df['ExpectedID']
Out[6]: True

您应该在
df['ExpectedId']中测试成员身份。改为测试值。

有没有一种方法可以在不使用for循环的情况下一次检查整个列表?不过,感谢您对价值观的提示。这纠正了我所问问题的一部分。您可以使用
set.difference
查找缺少的项<代码>缺少\u项=设置(预期的\u ID)。差异(df['ExpectedId'].值)