如果多列搜索匹配,Pandas 返回 true?

我正在尝试搜索多个列,现在我得到了结果,但如果有匹配的话,我真的只需要一个 true/false 。有没有办法做到这一点?


这是一个示例:


import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.rand(10000, 5)*10, columns=list('ABCDE')).astype(int)

df


    A   B   C   D   E

0   1   9   2   9   2

1   5   2   1   6   2

2   8   6   9   8   5

3   0   6   8   5   5

4   1   2   4   8   4

... ... ... ... ... ...

9995    9   3   4   9   0

9996    2   4   1   3   7

9997    4   5   2   4   9

9998    7   5   0   3   2

9999    3   5   0   5   7

10000 rows × 5 columns


df[((df['A'] == 0) & (df['B'] == 1))]


A   B   C   D   E

5   0   1   7   0   6

105 0   1   2   5   9

375 0   1   0   0   3

688 0   1   8   0   9

770 0   1   7   9   5

... ... ... ... ... ...

9706    0   1   1   7   4

9710    0   1   4   4   9

9789    0   1   3   4   3

9810    0   1   1   1   5

9987    0   1   2   3   3

89 rows × 5 columns

如果结果存在于数据框中,我可以获得 true 或 false,而不是获取数据匹配的行?


冉冉说
浏览 119回答 1
1回答

茅侃侃

您的(df['A'] == 0) & (df['B'] == 1)相当于较短的:df[['A','B']].eq([0,1]).all(1)。如果结果存在,你的问题我可以得到 true 或 false相当于检查该系列中的任何True. 那么您是否正在寻找:((df['A'] == 0) & (df['B'] == 1)).any()或者:df[['A','B']].eq([0,1]).all(1).any()
打开App,查看更多内容
随时随地看视频慕课网APP