我在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']'的定義。 –