使用pandas的.iloc()时触发iteritems()弃用FutureWarning问题咨询
解决pandas中
iteritems()弃用的FutureWarning问题 问题分析
你遇到的FutureWarning并不是来自获取DataFrame列的代码(iloc[:,0]/loc[:,0]/temp2[0]这些操作本身不会触发该警告),根源是后续代码中对获取到的Series(即temp3)使用了iteritems()方法,或是当前使用的pandas版本内部仍有部分逻辑调用了已弃用的iteritems()。
解决步骤
定位触发警告的具体代码:
将警告转为错误,获取完整调用堆栈以精准定位问题位置。在代码开头添加:import warnings warnings.filterwarnings("error")运行后会抛出
FutureWarning对应的错误,查看堆栈信息即可找到使用iteritems()的代码行。替换弃用方法:
找到所有series.iteritems()的调用,替换为series.items()——这是pandas官方推荐的替代方法,功能与原方法完全一致。升级pandas(可选):
如果是pandas内部逻辑触发的警告,建议升级到1.5.x及以上的稳定版本,新版本已逐步移除内部对iteritems()的调用。
验证
修改完成后移除warnings.filterwarnings("error"),重新运行代码,警告即可消失。
内容的提问来源于stack exchange,提问作者Ilgım Akalay
相关产品推荐
相关产品推荐

