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