升级Pandas至2.1.1后使用Seaborn绘制FacetGrid时出现AttributeError: 'DataFrame' object has no attribute 'iteritems'错误
升级Pandas至2.1.1后使用Seaborn绘制FacetGrid时出现AttributeError: 'DataFrame' object has no attribute 'iteritems'错误
嘿,这个问题我之前帮同事排查过,根源其实很好捋清楚:
Pandas从2.0版本开始就正式移除了iteritems()方法,统一改用items()来遍历DataFrame的键值对了。而你当前用的Seaborn版本应该比较老旧,它的内部代码还在调用已经被弃用的iteritems(),自然就和新的Pandas 2.1.1不兼容,抛出了这个错误。
给你两个靠谱的解决办法:
优先推荐:升级Seaborn到最新兼容版本
直接在终端里运行这条命令,把Seaborn更新到适配Pandas 2.0+的版本:pip install --upgrade seaborn升级后再跑你的绘图代码,应该就能正常生成FacetGrid了,这也是最稳妥的长期解决方案。
临时 workaround(不推荐长期用)
如果因为工作限制暂时没法升级Seaborn,可以在代码开头加这么一行,给DataFrame临时补上iteritems方法,让它指向新的items():import pandas as pd pd.DataFrame.iteritems = pd.DataFrame.items这样旧版Seaborn调用
iteritems()时,其实会执行新的items()方法,也能绕过这个错误,但这只是临时凑合用的办法,还是建议尽早升级Seaborn哦。
备注:内容来源于stack exchange,提问作者Will Lambert
相关产品推荐
相关产品推荐

