如何基于isclose()条件筛选DataFrame行并解决TypeError类型错误
问题修复方案
报错原因
math.isclose是Python标准库提供的单值判断函数,仅支持输入单个浮点型参数,无法直接处理pandas Series(整列数据)类型的输入,因此触发类型转换失败的报错。
修复方法
将math.isclose替换为pandas原生的向量化近似相等判断方法Series.isclose(),该方法可直接对整列数值批量执行近似相等校验。
修复后代码
temp_df = orig_df[ (orig_df["Alpha"].isclose(num)) & (orig_df["Method"] == method_type) ]
可选精度调整
如果需要自定义匹配精度,可以传入公差参数:
rtol:相对公差,默认值为1e-05atol:绝对公差,默认值为1e-08
示例(更宽松的精度匹配):
orig_df["Alpha"].isclose(num, rtol=1e-3, atol=1e-3)
内容的提问来源于stack exchange,提问作者AndW
相关产品推荐
相关产品推荐

