迁移至服务器后Pandas代码抛出AttributeError问题求助
解决Pandas迁移后
AttributeError: module 'pandas.core.common' has no attribute 'is_numeric_dtype'问题 这个报错的根源很明确——你使用的pandas-summary版本(0.0.41)和Pandas 0.23.0的API路径不兼容:
在Pandas 0.20+的版本中,is_numeric_dtype方法已经从pandas.core.common模块迁移到了pandas.api.types模块,但旧版的pandas-summary代码还在沿用旧的调用路径,所以触发了这个属性错误。
给你两个可行的解决方案:
方案1:升级pandas-summary到兼容版本
这是最省心的办法,新版的pandas-summary已经修复了这个API适配问题。在服务器上执行以下命令:
pip install --upgrade pandas-summary
升级完成后,你可以用pip list | grep pandas-summary确认版本,一般更新到0.1.x及以上版本就可以解决问题。
方案2:手动修改pandas-summary源码(如果无法升级依赖)
如果因为项目依赖限制不能升级pandas-summary,可以直接修改它的源码文件:
- 找到
pandas-summary的安装路径,比如你这里是~/anaconda3/envs/fastai/lib/python3.6/site-packages/pandas-summary/ - 打开
__init__.py文件,找到第112行附近的common.is_numeric_dtype - 将其替换为
pd.api.types.is_numeric_dtype - 确保文件顶部已经导入了
import pandas as pd(如果原来的导入是from pandas.core import common,可以保留但替换调用,或者直接改成从pandas.api.types导入该方法)
修改完成后重新运行你的代码,DataFrameSummary应该就能正常初始化了。
另外补充一点:你本地环境运行正常,大概率是因为本地的pandas-summary版本已经是适配过的,只是服务器上还停留在旧版本,即使两边Pandas版本一致,也会出现这个差异。
内容的提问来源于stack exchange,提问作者SwimBikeRun
相关产品推荐
相关产品推荐

