我试图在pandas数据框中获得间隔之外的值,并且我试图避免遍历行。有什么办法吗?
这就是我所尝试的,但是它给出了错误
ValueError:一个Series的真值是不明确的。使用a.empty a.bool (), a.item (), a.any()或所有()。
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
fence_low = 30
fence_high = 70
df_out = df[(df['A'] <= fence_low) or (df['A'] >= fence_high)]
df_out
我认为您想使用位或运算符而不是or
关键字:
df[(df['A'] <= fence_low) | (df['A'] >= fence_high)]
您可以否定between
:
df_out = df[~df['A'].between(fence_low, fence_high, inclusive='neither')]
您可以使用logical_and
df_out = df[np.logical_and(df.A<=fence_high , df.A>=fence_low)]