我在Python 2.7中的not in
比较运算符遇到问题。我有美国州缩写列表,我要检查,如果给定的缩写,是不在该列表中,所以我用:“不在”比较不按预期工作
'IL' not in states['Abbreviation']
没想到,我得到了一个真正的;然而,当我做到以下时,我也会得到一个真实的。
'IL' == states['Abbreviation'][13]
'IL'
是缩写的名单上的第14项,而当我使用==
我可以证明它是在列表中;但是,当我使用not in
比较时,它在列表中看不到它?是什么赋予了?
我对Python有点新,所以希望答案不要太尴尬。
感谢,
迈克尔
编辑:是的,我做我的最好的发布,但条款谷歌搜索之前,“谷歌”答案“不”是一个徒劳的努力,以及上面描述的行为似乎与文档中所说的比较工作方式并不一致。
EDIT2:列表
in[89]: states['Abbreviation']
out[89]:
0 AL
1 AK
2 AZ
3 AR
4 CA
5 CO
6 CT
7 DE
8 DC
9 FL
10 GA
11 HI
12 ID
13 IL
14 IN
15 IA
16 KS
17 KY
18 LA
19 ME
20 MT
21 NE
22 NV
23 NH
24 NJ
25 NM
26 NY
27 NC
28 ND
29 OH
30 OK
31 OR
32 MD
33 MA
34 MI
35 MN
36 MS
37 MO
38 PA
39 RI
40 SC
41 SD
42 TN
43 TX
44 UT
45 VT
46 VA
47 WA
48 WV
49 WI
50 WY
Name: Abbreviation, dtype: object
EDIT3:
我定义使用大熊猫IPython的笔记本
import pandas as pd
states = pd.read_table('states.csv', sep=',')
states.csv是文件中的第一个包含国家名称列表列和第二个缩写。这几乎都是。我感到困惑的是,为什么可以在一行中使用==
来显示它在列表中,然后没有not in
给出正确答案?
EDIT4:
按照要求通过答复,
In [92]: type(states['Abbreviation'])
Out[92]: pandas.core.series.Series
向我们展示您的状态['Abbreviation']' –
显示完整的可执行代码,以便其他人可以重现您声明的行为。这个答案取决于你没有向我们展示过的东西。 –
如果'states ['Abbreviation']'是缩写列表,并且它包含'IL',那么'not in'操作应该返回'False'。一定还有一些你还没有显示的东西。您可能错误输入了某些内容,并在您的帖子中更正了它。尝试重现问题,如果它再次发生,请包括'states ['Abbreviation']'的定义。 –