Python 如何遍历列表以查看列表中的任何值是否与另一个单元格中的部分值匹配?
我从美国图书馆得到了一份美国各州的名单。然后,我尝试在excel文件中的一列中循环,以查看该列中的任何单元格是否包含任何美国州。如果是,那么我将删除这些行Python 如何遍历列表以查看列表中的任何值是否与另一个单元格中的部分值匹配?,python,excel,Python,Excel,我从美国图书馆得到了一份美国各州的名单。然后,我尝试在excel文件中的一列中循环,以查看该列中的任何单元格是否包含任何美国州。如果是,那么我将删除这些行 excel_file = pd.read_excel('file.xlsx', sheet_name = 'sheet') states = us.states.STATES for i in range(len(excel_file['Column Label'])): if any(states) in excel_file[
excel_file = pd.read_excel('file.xlsx', sheet_name = 'sheet')
states = us.states.STATES
for i in range(len(excel_file['Column Label'])):
if any(states) in excel_file['Column Label'][i]:
print(i)
现在我在循环中有一个print语句,只是为了查看哪些索引弹出,但是循环本身不起作用。我收到这个错误
TypeError:“in”需要字符串作为左操作数,而不是bool
尝试下面的代码,
any()
函数返回True
如果iterable中的任何项为True,否则返回False
:
any(state in excel_file['Column Label'][i] for state in states)
这不是我们要做的any()
在一个iterable上循环并返回True
,如果该iterable中的任何内容导致True
例如:
any([False,False,False])=>False
任何([False,True,False])=>True
为了更容易阅读你要做的事情,我切换到了循环而不是范围。这将返回索引和我们迭代的当前值。对于工作表中的每个条目,我们可以检查该条目是否在您的州列表中
这里的print()
语句打印i
值和匹配的条目
对于i,枚举(excel_文件['Column Label'])中的条目:
如果进入美国:
打印(i,条目)
注意:Python隐藏了这个练习需要嵌套循环的事实。循环的顶部很明显,但是这里的
关键字中的正在创建一个自己的循环。它正在将条目
与状态
中的每个项目进行比较,至少在找到匹配项之前。任何方法文档都告诉了您有关它的用法的信息吗?哦,谢谢!我还有一个后续问题。与状态列表进行比较的单元格中可能有状态,但不只是状态。例如,有人说“佛罗里达房车贸易协会”。如何检查单元格中是否有状态?必须执行另一个嵌套循环。您可以在“更长的字符串”中执行'string'
,因此类似于对于状态中的状态:如果条目中的状态