首先来看一道题:
from pandas import Series,DataFrame
data = {'language':['Java','PHP','Python'],'year':[1995,1995,1991]}
frame = DataFrame(data)
frame['IDE'] = Series(['Intellij','Notepad','IPython'])
'IPython' in frame['IDE']
#会输出什么
一不留神,以为会输出True,但是结果是False,为什么呢?
我也不知道,不过做了个这样的实验:
'IPython' in frame['IDE']
#输出False
3 in frame['IDE']
#输出True
#猜测 'IPython' in frame['IDE'] <=> 'IPython' in frame['IDE'].index
#所以理所当然会输出False
#注:并不意味着frame['IDE'] == frame['IDE'].index,只是说两句代码在in中效果差不多
#正确判断方法
'IPython' in frame['IDE'].values
#输出True
本文通过一个具体的Python Pandas代码示例,探讨了使用'in'操作符在DataFrame对象上进行成员资格检查的常见误解。解释了为何直接在DataFrame列上使用'in'操作可能不会得到预期的结果,并提供了正确的检查方法。
693

被折叠的 条评论
为什么被折叠?



