Python Pandas自定义函数用.format()筛选DataFrame报错如何解决?
错误原因
.format()是Python字符串专属的方法,你之前的写法将.format()放在了DataFrame筛选表达式的末尾,相当于对筛选返回的DataFrame对象调用format方法,自然触发AttributeError报错。
正确写法
你只需要将.format()移动到每个需要做变量替换的字符串尾部即可,不需要额外给参数加引号,符合你的使用预期:
x = ALL_MA_MR_MC[(ALL_MA_MR_MC["SEGMENT"] == "{}".format(segment)) & (ALL_MA_MR_MC["logowanie"] == "{}".format(kategoria))]
其他注意点
- 你原函数中定义的DataFrame变量名为
ALL_MA_MR_MC,但写筛选逻辑时误用了未定义的df变量,实际运行时需要统一变量名 - 注意列名大小写要和CSV实际读取的列名完全一致,避免筛选结果为空
内容的提问来源于stack exchange,提问作者dingaro
相关产品推荐
相关产品推荐

