dataframe.isin 使用多个 OR 运算符

dataframe.isin using multiple OR operators

我想看看我的 pandas 数据框的多列列表中是否有一些值。

基本上,如果列表中的值存在,我想查看我的 A、B 和 C 列,如果存在,则过滤存在这些值的行。 为此,我正在使用这个:

processes = ['process_A', 'process_B']
df[df.col_A.isin(processes),df.col_B.isin(processes), df.col_C.isin(processes)].any()

已经试过了:

df[df.col_A.isin(processes) OR df.col_B.isin(processes) or df.col_C.isin(processes)]

但是我得到了很多错误或意想不到的结果。

.isin returns 布尔系列,您需要使用 | 进行值之间的逻辑或。

试试这个:

df[df.col_A.isin(processes) | df.col_B.isin(processes) | df.col_C.isin(processes)]

使用 any 如下

df[df[['col_A','col_B','col_C']].isin(processes).any(1)]