我正在尝试确定是否在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
。
答案 0 :(得分:0)
将&
替换为and
。 &
是按位AND运算符。
答案 1 :(得分:0)
默认使用str.contains
,regex=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')