Python 使用';或';选择熊猫中的数据

Python 使用';或';选择熊猫中的数据,python,pandas,Python,Pandas,我有一个值的数据框架,我想探索异常值的行。我在下面编写了一个函数,可以使用groupby().apply()函数调用该函数,它对高值或低值都很有效,但当我想将它们组合在一起时,会生成一个错误。我不知怎么搞砸了布尔值或选择,但我只能使用&找到选择标准的文档。如有任何建议,将不胜感激 扎克公司 df = DataFrame( {'a': [1,1,1,2,2,2,2,2,2,2], 'b': [5,5,6,9,9,9,9,9,9,20] } ) #this works fine def get_o

我有一个值的数据框架,我想探索异常值的行。我在下面编写了一个函数,可以使用
groupby().apply()
函数调用该函数,它对高值或低值都很有效,但当我想将它们组合在一起时,会生成一个错误。我不知怎么搞砸了布尔值
选择,但我只能使用
&
找到选择标准的文档。如有任何建议,将不胜感激

扎克公司

df = DataFrame( {'a': [1,1,1,2,2,2,2,2,2,2], 'b': [5,5,6,9,9,9,9,9,9,20] } )

#this works fine
def get_outliers(group):
    x = mean(group.b)
    y = std(group.b)
    top_cutoff =    x + 2*y
    bottom_cutoff = x - 2*y
    cutoffs = group[group.b > top_cutoff]
    return cutoffs

#this will trigger an error
def get_all_ outliers(group):
    x = mean(group.b)
    y = std(group.b)
    top_cutoff =    x + 2*y
    bottom_cutoff = x -2*y
    cutoffs = group[(group.b > top_cutoff) or (group.b < top_cutoff)]
    return cutoffs

#works fine    
grouped1 = df.groupby(['a']).apply(get_outliers)
#triggers error
grouped2 = df.groupby(['a']).apply(get_all_outliers)
df=DataFrame({'a':[1,1,1,2,2,2,2],'b':[5,5,6,9,9,9,9,20]})
#这个很好用
def get_异常值(组):
x=平均值(b组)
y=std(b组)
上止点=x+2*y
底部_截止=x-2*y
截止值=组[b组>顶部截止值]
回程截止线
#这将触发一个错误
def获取所有异常值(组):
x=平均值(b组)
y=std(b组)
上止点=x+2*y
底部_截止=x-2*y
截止值=组[(b组>顶部截止值)或(b组<顶部截止值)]
回程截止线
#很好
grouped1=df.groupby(['a']).apply(获取异常值)
#触发错误
grouped2=df.groupby(['a']).apply(获取所有异常值)

您需要使用
|
而不是
运算符在Python中是特殊的,它们与试图在集合中以元素方式应用于它们的numpy和pandas之类的对象不能很好地交互。因此,对于这些上下文,他们重新定义了“按位”运算符
&
|
的意思是“and”和“or”