Python:如何快速检查变量是否存在于DataFrame列表的任意位置
解决方案
直接用any()结合生成器表达式就能实现单行检查,完美嵌入elif语句,而且因为any()的短路特性,找到匹配后会立刻停止遍历,不用检查所有DataFrame:
方式一:直观简洁版
适合确定DataFrame里都是字符串类型的场景:
elif any(var in df.values for df in dfList): # 这里写你要执行的一系列函数
方式二:Pandas原生严谨版
如果DataFrame里有混合数据类型,用这种方式更稳妥,通过Pandas的逐元素比较来判断:
elif any((df == var).any().any() for df in dfList): # 这里写你要执行的一系列函数
完整示例
import pandas as pd var = 'myString' df1 = pd.DataFrame({'col1': ['x','y','z'], 'col2': ['a','myString','b']}) df2 = pd.DataFrame({'col1': ['p','q','r'], 'col2': ['c','d','e']}) dfList = [df1, df2] # 实际使用示例 if False: # 替换成你的其他判断条件 pass elif any((df == var).any().any() for df in dfList): print("检测到目标值,执行函数") # func1() # func2()
内容的提问来源于stack exchange,提问作者keenan
相关产品推荐
相关产品推荐

