2
假設我有以下pandas.Series pandas.Series的字符串:查找使用IN操作
import pandas as pd
s = pd.Series([1,3,5,True,6,8,'findme', False])
我可以使用in
運營商找到任何整數或布爾值。例如,所有的產量真如下:
1 in s
True in s
然而,失敗的時候我做的:
'findme' in s
我的解決方法是使用pandas.Series.str
或第一系列轉換到一個列表,然後使用in
運營商:
True in s.str.contains('findme')
s2 = s.tolist()
'findme' in s2
任何想法,爲什麼我不能直接使用in
運營商找到了一系列的字符串?
有趣的是,如果我'進口numpy的作爲np'然後執行'S = pd.Series([1,3,5,真實,6,8, 'findme',False,np.nan])',我無法通過在s.values中執行'np.nan'來找到'NaN',但是我可以通過在s.tolist()中執行'np.nan' '。思考? – sedeh
@sedeh:'nan'因爲'nan!= nan'是一個奇怪的,所以一般來說,如果它是IDENTICAL,並且'tolist()'重用'np.nan',那麼只能得到'(something_which_contains_nan)'。看到[這裏](http://stackoverflow.com/questions/20320022/why-in-numpy-nan-nan-is-false-while-nan-in-nan-is-true)爲我以前的答案南非的東西。 – DSM