检查pandas数据帧中是否存在多个字符串

时间:2017-08-20 08:04:05

标签: python string pandas dataframe text

我正在尝试确定是否在dataframe

中找到了两个变量
table:
Code    index
600.SI  4th Q 2015
500.SI  Full Year
ggr.SI  1st Q 2016

# If variable_code and variable_date is not found in table, print not found
if table['Code'].str.contains(variable_code).any() & table['index'].str.contains(variable_date).any():
    print('found')
else:
    print('not found')

但是,它始终会返回found

我认为我的if语句的结构不正确,无法对两个项目进行bool比较。

如何解决这个问题?

更新

通常,variable_code会在table中找到。如果在variable_code中找到table,请检查是否还存在variable_date

我想要实现的是,如果这两个条件都不存在,请打印not found

2 个答案:

答案 0 :(得分:0)

&替换为and&是按位AND运算符。

答案 1 :(得分:0)

默认使用str.containsregex=True,所以如果你不小心,你就不会匹配正确的东西。如果要检查是否相等而不是包含,请使用==运算符,如下所示:

if not table[(table['Code'] == variable_code) 
             & (table['index'] == variable_date)].empty: # https://stackoverflow.com/a/45780191/4909087
    print('Found')
else:
    print('Not found')