运行IBM技能实验室代码遇NameError:'stats'未定义,如何解决?
解决NameError: name 'stats'未定义问题
你运行的这段计算皮尔逊相关系数的代码出现了NameError: name 'stats' is not defined错误,原因是代码中用到的stats模块未提前导入。
解决方案
方式一:导入
scipy.stats并命名为stats,和原代码兼容:
在代码开头添加导入语句:import scipy.stats as stats之后再运行你的原代码即可:
pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price']) print("皮尔逊相关系数为", pearson_coef, ",P值为 P = ", p_value)方式二:直接导入
pearsonr函数,简化代码:
导入语句改为:from scipy.stats import pearsonr此时代码需调整为:
pearson_coef, p_value = pearsonr(df['city-mpg'], df['price']) print("皮尔逊相关系数为", pearson_coef, ",P值为 P = ", p_value)
错误原因说明
Python中使用任何模块或函数前都需要先导入,原代码直接调用stats.pearsonr,但Python找不到名为stats的已导入模块,因此抛出NameError。
内容的提问来源于stack exchange,提问作者Collins Ekwe
相关产品推荐
相关产品推荐

