pandas 如何获取超出区间的值panda DataFrame

epggiuax  于 2023-01-19  发布在  其他
关注(0)|答案(3)|浏览(168)

我试图在Pandas Dataframe 中得到一个区间之外的值,并且我试图避免在行上迭代。有什么方法可以做到吗?
这就是我尝试的方法,但它给出了错误
ValueError:Series的真值不明确。请使用.empty、.bool()、.item()、.any()或.all()。

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
4c8rllxm

4c8rllxm1#

我认为您应该使用按位OR运算符,而不是or关键字:

df[(df['A'] <= fence_low) | (df['A'] >= fence_high)]
c90pui9n

c90pui9n2#

可以对between求反:

df_out = df[~df['A'].between(fence_low, fence_high, inclusive='neither')]
7fyelxc5

7fyelxc53#

可以使用逻辑与

df_out = df[np.logical_and(df.A<=fence_high , df.A>=fence_low)]

相关问题