pandas query方法无法识别f字符串或format生成变量,查询返回空行如何解决
问题原因
两次赋值的变量a存在大小写差异:
- 手动硬编码的
a值为1736_4_A1,末段为大写A1,和数据表中array_id字段的存储值完全一致,可正常匹配 - 格式化字符串生成的
a打印结果为1736_4_a1,末段为小写a1,字符串匹配默认区分大小写,因此查询返回空结果
解决方法
- 方案1:生成变量时统一转为大写,和数据表存储格式对齐
# 拼接后调用upper()方法转为全大写 a = "{}_{}_{}".format(waferid, slideid, position).upper() df = metaData.query("array_id == @a")
- 方案2:在查询时做大小写不敏感匹配,无需修改变量生成逻辑
# 将查询字段和变量都转为小写再匹配 df = metaData.query("array_id.str.lower() == @a.lower()")
- 方案3:如果是
position变量本身为小写,直接在拼接时转大写即可
a = f"{waferid}_{slideid}_{position.upper()}" df = metaData.query("array_id == @a")
内容的提问来源于stack exchange,提问作者user17549604
相关产品推荐
相关产品推荐

