使用多个OR运算符的dataframe.isin

时间:2019-07-03 13:42:36

标签: python pandas dataframe operators

我想看看我的熊猫数据框的多列中是否有列表中的某些值。

基本上,我想查看我的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)]

但是我有很多错误或无法预期的结果。

2 个答案:

答案 0 :(得分:2)

.isin返回一个布尔系列,您需要对值之间的逻辑或使用|

尝试一下:

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

答案 1 :(得分:0)

按如下所示使用any

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